2016-06-28 82 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"]}}} 
    ])