将文档合并为单个文档

时间:2018-10-15 22:03:49

标签: mongodb aggregation-framework

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

我有以下文件

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

我需要将它们合并为一个看起来像这样的文档。

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

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用以下汇总。

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

$replaceRoot以将搜索结果提升为最高排名。

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