5

我正在使用该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

有几个问题:

  1. 它对一切都有 NA
  2. 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 仅适用于没有任何嵌套的完全平面集合?

4

0 回答 0