我正在使用该dbGetQueryForKeys
函数(我在这里了解到),并且似乎没有得到正确的返回值——它收集了正确的键,但值都是 NA。
这是我在 mongo 控制台中的查询,它产生了我期望的结果:
db.final.find({},{"ids.myid":1,"org.name":1,"_id":0}).skip(0).limit(5000)
这会产生...的列表
{"ids" : {"myid": "123"}, "org": {"name": "Fred"}},
但是,RMongo 中的等价物:
dbGetQueryForKeys(db,'final', '{}','{"ids.myid":1,"org.name":1,"_id":0}',skip=0,limit=5000)
生产
ids.myid org.name X_id
1 NA NA NA
2 NA NA NA
3 NA NA NA
有几个问题:
- 它对一切都有 NA
- X_id 列仍然存在,即使它是 0。
但它确实正确地/省略了所有其余的键,因此它在某种程度上清楚地识别了命令,只是为这些返回了错误的值。
现在,文档是这样说的:
The output is a data.frame object
and will work properly only if the mongoDB collection contains
primitive data types. It may not work properly if there are any
embedded documents or arrays.
这似乎是我查询嵌套变量的可能问题。但是,这些嵌套的返回值本身是单数的,ids.myid 和 org.name 都是字符串而不是数组。不过,真的是这样吗?RMongo 仅适用于没有任何嵌套的完全平面集合?