[英]how to aggregate sub document in mongodb?
我有以下收藏:
{
name: "c1",
jobs: [{
category: "a"
}, {
category: "a"
},{
category: "b"
}]
}
{
name: "c2",
jobs: [{
category: "b"
}, {
category: "c"
}]
}
我想得到以下结果:
[{
category: "a",
total: 2
}, {
category: "b",
total: 2
}, {
category: "c",
total: 1
}]
我如何使用 mongodb 查询(或者使用 mongodb c# 驱动程序更好)来做到这一点?
db.test.aggregate(
{ $unwind: "$jobs" },
{ $group:
{ _id: '$jobs.category', total : { '$sum' : 1 } }
},
{ $project: { category : '$_id', _id:0, total:1 } }
).toArray()
这将产生与您的问题完全相同的结果。
db.getCollection('test').aggregate(
{ $unwind: "$jobs" },
{ $group:
{ _id: '$jobs.category', total : { '$sum' : 1 } }
}
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.