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是一个字符串变量,则不起作用(相同的错误消息)。