将两个字段的值合并为一个集合中的一个

时间:2016-06-28 05:30:45

标签: mongodb aggregation-framework

有没有办法将两个字段的值合并为一个字段或数组? 我有一个像这样的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和side2的所有值的数组。

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

ID并不重要。我已经尝试了很多聚合和级联查询命令,但却无法得到所需的响应。

1 个答案:

答案 0 :(得分:2)

我只是找到一个更简单的解决方案:

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