【发布时间】:2020-06-27 18:58:59
【问题描述】:
我是 Mongo 中聚合查询的新手,并且一直在努力尝试生成我想要的输出。我有以下聚合查询:
db.events.aggregate([
{ $match: { requestState: "APPROVED" } },
{ $unwind: { path: "$payload.description" } },
{ $group: { _id: { instr: "$payload.description", bu: "$createdByUser", count: { $sum: 1 } } } }
]);
返回以下结果:
{ "_id" : { "instr" : "ABC-123", "bu" : "BU2", "count" : 1 } }
{ "_id" : { "instr" : "ABC-123", "bu" : "BU1", "count" : 1 } }
{ "_id" : { "instr" : "DEF-456", "bu" : "BU1", "count" : 1 } }
如何修改聚合查询以便只返回 2 个文档而不是 3 个?将两个“ABC-123”结果合并为一个结果,其中包含一个带有“bu”和“count”字段的新计数数组,即
{ "_id" : { "instr" : "ABC-123", "counts": [ { "bu" : "BU1", "count" : 1 }, { "bu" : "BU2", "count" : 1 } ] } }
非常感谢
【问题讨论】:
标签: mongodb aggregation-framework