3

R 版本:3.4.2,Ubuntu 16.04 LTS(4.10.0-37-generic),Mongo DB 版本 3.4.10,Mongolite v1.2。

基于Mongolite 手册,我正在尝试根据我在 R 中的数据添加一个索引。我希望这个索引根据数据中变量的值来获取值。

我已经创建了我的 Mongo DB,并在 R 中使用:

margo<-mongo(collection="test",db="test1",url="mongodb://localhost", verbose=TRUE)

我能够使用变量名方法按照 stackoverflow 上的其他答案运行查找查询(更新 mongolite 中的条目

margo$find(query=paste0('{"FileName": "',test1$FileName,'"}'))

但是,我无法弄清楚如何添加基于变量的索引。例如,如果我的变量是val=1并且我正在尝试创建一个名为“trya”的索引,那么当我尝试

margo$index(add=paste0('{"trya":"', val,'"}'))

我收到一条错误消息:

错误:未知索引插件'1'显然,如果我这样做

margo$index(add=('{"trya": 1}'))

这很好用。mongo 用法的新手,所以如果我遗漏了一些关于变量格式的明显内容,我深表歉意。

更新:我能够使用

margo$index(toJSON(list("trya" = val),auto_unbox=TRUE)) 

添加数字索引(根据github mongolite report on importing complex indices)。如果 val 是字符串变量,则这不起作用(相同的错误消息)。

4

0 回答 0