我在使用 RMongo 时遇到问题,所以我正在尝试将我的工作转换为 rmongodb。从这里开始,我的查询在 mongo 控制台中如下所示:
db.final.find({},{"ids.myid":1,"org.name":1,"_id":0}).skip(0).limit(5000)
在 RMongo 中就像这样:
dbGetQueryForKeys(db,'final', '{}','{"ids.myid":1,"org.name":1,"_id":0}',skip=0,limit=5000)
(后者不返回值,但 Mongo 控制台确实有效。)
我对文档的理解是它在 rmongodb 中应该是这样的:
library(rmongodb)
mcon <- mongo.create(host="myurl:port",db="dbname")
fields = mongo.bson.buffer.create()
mongo.bson.buffer.append(fields, "ids.myid", 1L)
mongo.bson.buffer.append(fields, "org.name", 1L)
mongo.bson.buffer.append(fields, "_id", 0L)
cur <- mongo.find(mcon,"final",fields=fields, limit=5000) # query takes the default null
df <- mongo.cursor.to.data.frame(cur)
但是,我得到:
data frame with 0 columns and 0 rows
我的原始查询到 rmongodb 的正确翻译是什么?
我知道我的连接是有效的,因为:
mongo.get.databases(mcon)
工作并显示正确的数据库。但是,我调用集合的方式似乎存在问题,因为
mongo.find.one(mcon,"final")
正在返回 NULL。尽管db.final.findOne()
工作正常!