我想使用MongoVue为给定集合的一部分创建所有id的快速导出。
我的文档有一个_id字段,它是一个复合键。
例如。
{
"_id" : {
"GroupID" : 3,
"ThingyID" : 320486
},
"HowManyOwned" : 42,
"IsAwesome" : true
}
我想为第3组创建所有ThingyID的导出。
当然,如果我的查询是这样的话。
db.GroupThingy.find({ "_id.GroupID" : 3 }, { "_id.ThingyID" : 1 })
我将取回所有复合键。我想使用MongoVue快速创建此导出。如果我使用该查询,我会返回导出。
Document[2 Keys]
Document[2 Keys]
Document[2 Keys]
我希望得到的是
或者
3,12345
3,3838
3,3777
3,1111
或者更好的只是
12345
3838
3777
1111
我可以为此编写程序,但必须有一种快速的方法来实现这一点,我只是不知道。
聚合框架无法帮助我获得csv导出......但是这样的东西只能支持20k文档
db.GroupThingy.group(
{
key: {
"_id.ThingyID": 1,
"_id.GroupID":1
},
cond: { "_id.GroupID": 3 },
reduce: function(curr, result){
result.ThingyID2 = curr._id.ThingyID
},
initial: { "ThingyID2": 0 }
});
答案 0 :(得分:1)
由于这个问题,我终于找到了如何使用mongoexport获取导出: how to export collection to csv in mongodb
但是我一直收到错误:
错误:位置选项太多......这篇帖子帮助我找到答案: What does "too many positional options" mean when doing a mongoexport?
所以我运行mongoexport的最终解决方案是:
mongoexport
--host myHostName
--db theDB
--collection GroupThingy
--fields "_id.ThingyID"
--csv
--query "{'_id.GroupID':3}"
(有关可读性的专有选项)