0

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

1 回答 1

1

好吧,由于这个问题,我终于找到了如何使用 mongoexport 进行导出: how to export collection to csv in mongodb

但是我一直收到错误:

错误:太多的位置选项......而这篇文章帮助我找到了答案: 在进行 mongoexport 时,“太多的位置选项”是什么意思?

所以我运行 mongoexport 的最终解决方案是:

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

(那里的选项有自己的可读性)

于 2012-11-29T13:39:23.673 回答