我无法让一个简单的 rmongodb 查询工作。这是一个可重现的例子。
这部分不起作用。
rm(list=ls())
library(rmongodb)
mongo <- mongo.create(host="localhost")
mongo.is.connected(mongo)
ns <- "mydb.test"
x <- data.frame(thread.ids=c(276097L,26509L),num.replies=c(0L,23L),stringsAsFactors = F)
x
b <- mongo.bson.from.df(x)
b
mongo.drop(mongo,ns)
mongo.insert.batch(mongo,ns,b)
a <- mongo.find.all(mongo,ns)
a
query1 <- mongo.bson.from.list(list("thread.ids"=276097L))
query1
l <- mongo.find.all(mongo,ns,query1)
l
l <- mongo.find.one(mongo,ns,query1)
l
l <- mongo.find.one(mongo,ns,'{"thread.ids" : "276097" }')
l
l <- mongo.find.one(mongo,ns,'{"thread.ids" : 276097 }')
l
出于某种原因,这部分有效:
x <- data.frame(name=c("Dave","Fred"),age=c(27L,31L),stringsAsFactors = F)
x1 <- mongo.bson.from.df(x)
x1
mongo.insert.batch(mongo, ns, x1)
query3 <- mongo.bson.from.list(list("name"="Dave"))
query3
l <- mongo.find.one(mongo,ns,'{"name" : "Dave" }')
l
l <- mongo.find.all(mongo,ns,query3)
l
l <- mongo.find.one(mongo,ns,query3)
l
谢谢你的帮助。即使我将 thread.ids 作为字符,它仍然找不到那些记录。
更新:
进一步的工作暴露了一个问题。此工作流不接受带有句点的参数名称。例如,当我将“thread.ids”重命名为“threadids”时,一切都开始工作了。
我已经在 cran 文档中提到的 github 上打开了这个问题: https ://github.com/mongosoup/rmongodb/issues/75