首页 > 解决方案 > 将文档合并为单个文档

问题描述

如何使用 mongodb 聚合管道来获得最终结果?

我有以下文件

{ 
    "_id" : "aaa", 
    "Count" : 137.0
}
{ 
    "_id" : "bbb", 
    "Count" : 11.0
}
{ 
    "_id" : "ccc", 
    "Count" : 236.0
}

我需要将它们合并到一个看起来像这样的文档中..

{
    aaa: 137,
    bbb: 11,
    ccc: 236
}

谢谢!

标签: mongodbaggregation-framework

解决方案


您可以使用以下聚合。

用于$arrayToObject将具有值的数组转换为对象,然后$mergeObjects将所有文档合并为单个文档。

$replaceRoot将结果提升为top。

db.colname.aggregate([
  {"$group":{
    "_id":null,
    "results":{"$mergeObjects":{"$arrayToObject":[[["$_id","$Count"]]]}}
  }},
  {"$replaceRoot":{"newRoot":"$results"}}
])

推荐阅读