【发布时间】:2017-06-23 19:53:14
【问题描述】:
我有一些数据正在尝试使用 rmongodb 包从 mongodb 检索到 R 中。在某个时间点,存储文档中字段的顺序发生了变化。
我试图强制我的投影查询通过明确指定尝试的方法来保持投影字段的顺序:SO question,如下所示:
data <- mongo.find.all(mongo_conn, table,
fields = list('id1' = 1, 'id2' = 2,
'time' = 3, 'latitude' = 4,
'longitude' = 5, '_id' = 0))
我似乎无法找到一个好的答案。它按照它们在数据库中的顺序返回字段,当然,这些字段已更改为列表。
这意味着,我必须编写什么样的循环代码才能将返回的结果组织成类似数据框的结构,这显然会造成严重破坏。
知道如何按指定顺序获取字段而不是 DB 中的内容吗?
【问题讨论】:
-
我认为 $project 将是您的解决方案。
-
不完全确定你在问什么;您能否提供示例数据和/或预期结果?为什么你不能在 R 中进行排序,并且你没有使用聚合框架?
-
在数据库中,在某些时候,每个文档中存储上述字段的顺序发生了变化。 MongoDB 按照它们在数据库中出现的顺序返回这些字段。我希望它们按我指定的顺序返回。当然,我可以在 R 中重新排序,我正在这样做。但是,这需要我遍历整个数据(返回列表)并对列表的每个条目进行排序。
-
另外,在指定要返回的字段时,只能使用
0(不返回)或1(返回)。
标签: r mongodb aggregation-framework rmongodb