【发布时间】:2021-02-10 04:24:43
【问题描述】:
给定以下集合
{ "_id": 1, "items": [ { "k": "A", "v": 1 }, { "k": "B", "v": 2 } ] }
{ "_id": 2, "items": [ { "k": "A", "v": 3 }, { "k": "B", "v": 4 } ] }
如何对具有相同键 k 的所有项目求和,并保留原始对象格式,如下所示:
{ "items": [ { "k": "A", "v": 4 }, { "k": "B", "v": 6 } ] }
我尝试使用$unwind 和$group,但它返回的是对象序列而不是单个项目。
{ $unwind: { path: "$items" } },
{
$group: {
_id: "$items.k",
v: { $sum: "$items.v" }
}
}
我可以将其聚合回原始格式,但我觉得必须有更好的方法来做到这一点。
【问题讨论】:
标签: mongodb aggregation-framework nosql-aggregation