2016-06-28 85 views
0

有什麼方法可以將兩個字段的值合併到一個字段或數組中? 我有一個MongoDB的集合是這樣的:將兩個字段的值合併爲一個集合中的一個

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

如何獲得含SIDE1和側面2的所有值的數組。

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

該id不重要。我已經嘗試了許多聚合和級聯查詢命令,並且無法想出所需的響應。

+1

這是不可能有相同的_id多個記錄。請發佈正確的數據 –

回答

1

心中已經只是找到一個簡單的解決方案:

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