如何在mongolite

时间:2017-11-05 23:47:38

标签: r mongodb indexing mongolite

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

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

我创建了我的Mongo数据库,并使用以下命令在R中访问它:

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

我能够使用变量名称方法按照stackoverflow(updating an entry in 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 compound indices)。如果val是一个字符串变量,则不起作用(相同的错误消息)。

0 个答案:

没有答案