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

私はこのためのプログラムを書くことができましたが、私が知らないだけでこれを達成するための簡単な方法が必要です.

Aggregation Framework は 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を使用してエクスポートを取得する方法を見つけました: mongodbのcsvにコレクションをエクスポートする方法

しかし、私はエラーを受け取り続けました:

エラー:位置オプションが多すぎます...そしてこの投稿は答えを見つけるのに役立ちました: mongoexportを実行するときに「位置オプションが多すぎる」とはどういう意味ですか?

したがって、mongoexportを実行するための私の最終的な解決策は次のとおりです。

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

(読みやすさのための独自の行のオプション)

于 2012-11-29T13:39:23.673 に答える