$将多个字段投影到一个字段

时间:2016-12-08 17:40:52

标签: mongodb mongodb-query aggregation-framework

我正在使用MongoDB 3.0(直到明年我们才会升级。)我需要在集合中的多个字段中获取唯一值列表。这些字段大多数时间都具有相同的值。这可以在版本3.2中完成,如下所示:

db.mydata.aggregate([
  {'$project': {'combined_users': ['$user1', '$user2']}},
  {'$unwind': '$combined_users'},
  {'$group': {_id: 1, {$addToSet: '$combined_users'}}}

问题出在版本3.0中,我们在combined_data中得到“不允许使用字段类型数组...”。

如何在Mongo 3.0中完成同样的事情?

1 个答案:

答案 0 :(得分:1)

您需要使用$setUnion运算符

db.mydata.aggregate([
    {'$project': { 'combined_users': { "$setUnion": ['$user1', '$user2'] }}}
])