Mongo聚合,访问数组的一部分

Mongo aggregation, accessing a portion of an array

我有一个 mongo 这样的文档

{
  '_id': .bson.
  'key': [ 'word1', 'word2', { 'key1': 'value1', 'key2': 'value2' } ] 
},

如何使用 mongo 聚合框架使文档看起来像这样:

{
  '_id': .bson.
  'key2': 'value2'
},

提前致谢!

-丹尼尔

db.collection.aggregate([ {$unwind: "$key"}, 
                          {$group : {
                                      "_id" : "$_id", 
                                      "key2": {$max: "$key.key2"}
                                    }
                          }])

如果您确定 key.key2 始终存在于键数组的 last 元素中,请将 $max 替换为 $last。