MongoDb/MongoVue导出复合密钥的一部分

MongoDb/MongoVue导出复合密钥的一部分,mongodb,mongovue,Mongodb,Mongovue,我想使用MongoVue为给定集合的一部分创建所有ID的快速导出 我有一个文档,它有一个_id字段,它是一个复合键 比如说 { "_id" : { "GroupID" : 3, "ThingyID" : 320486 }, "HowManyOwned" : 42, "IsAwesome" : true } 我想为第3组创建所有东西的导出 当然,如果我提出这样的问题 db.GroupThingy.find({ "_id.GroupID" : 3 }, { "_id

我想使用MongoVue为给定集合的一部分创建所有ID的快速导出

我有一个文档,它有一个_id字段,它是一个复合键

比如说

{
  "_id" : {
    "GroupID" : 3,
    "ThingyID" : 320486
  },
  "HowManyOwned" : 42,
  "IsAwesome" : true
}
我想为第3组创建所有东西的导出

当然,如果我提出这样的问题

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 }
});

由于这个问题,我终于找到了使用mongoexport获取导出的方法:

然而,我不断地得到错误:

错误:位置选项太多。。。这篇文章帮助我找到了答案:

因此,我运行mongoexport的最终解决方案是:

mongoexport 
     --host myHostName 
     --db theDB 
     --collection GroupThingy 
     --fields "_id.ThingyID" 
     --csv 
     --query "{'_id.GroupID':3}"

(为了可读性,有自己的选项)

您是否考虑过使用聚合框架?你的收藏有多大?收藏的唱片不到700万张。