2016-06-28 18 views
0

2つのフィールドの値を1つのフィールドまたは配列にマージする方法はありますか? SIDE1とSIDE2のすべての値を含む配列を取得する方法2つのフィールドの値を1つのコレクションにまとめる

{"_id": 1, "side1": "a", "side2": "b"}, 
{"_id": 2, "side1": "c", "side2": "b"}, 
{"_id": 3, "side1": "b", "side2": "d"}, 
{"_id": 4, "side1": "a", "side2": "d"} 

: は、私はこのようなMongoDBのコレクションを持っています。

{"_id": null, "sides": ["a", "b", "c", "d"]} 

idは重要ではありません。私は多くの集計とカスケードクエリコマンドを試して、ちょうど希望の応答を思い付くことができません。

+1

同じ_idを持つ複数のレコードを持ってすることはできません。正しいデータを投稿してください –

答えて

1

はI'vはちょうど簡単な解決策を見つける:

db.LINK.aggregate([ 
    { $group: {"_id":0,"list1":{$addToSet:"$side1"},"list2":{$addToSet:"$side2"}}} , 
    { $project: {array:{$setUnion:["$list1","$list2"]}}} 
    ]) 
関連する問題