我正在使用这个dbGetQueryForKeys函数(我在这里学到的),并且似乎没有得到正确的返回值---它收集正确的键,但值都是NA.
这是我在mongo控制台中的查询,它产生了我所期望的:
db.final.find({},{"ids.myid":1,"org.name":1,"_id":0}).skip(0).limit(5000)
Run Code Online (Sandbox Code Playgroud)
这产生了......的列表
{"ids" : {"myid": "123"}, "org": {"name": "Fred"}},
Run Code Online (Sandbox Code Playgroud)
但是,相当于RMongo:
dbGetQueryForKeys(db,'final', '{}','{"ids.myid":1,"org.name":1,"_id":0}',skip=0,limit=5000)
Run Code Online (Sandbox Code Playgroud)
产生
ids.myid org.name X_id
1 NA NA NA
2 NA NA NA
3 NA NA NA
Run Code Online (Sandbox Code Playgroud)
有几个问题:
但它确实/省略了/所有其余的键,所以它在某种程度上清楚地识别命令,只是为这些返回错误的值.
现在,文档说明了这一点:
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.
Run Code Online (Sandbox Code Playgroud)
这似乎是我查询嵌套变量的可能问题.但是,这些嵌套的返回值本身是单数,ids.myid和org.name都是字符串而不是数组.不过,情况确实如此吗?RMongo只适用于没有任何嵌套的完全平坦的收藏?