MongoDb / MongoVue导出复合键的一部分

时间:2012-11-28 13:20:30

标签: mongodb mongovue

我想使用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 }
});

1 个答案:

答案 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}"

(有关可读性的专有选项)