我有以下系列:
{
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#driver更好)?
答案 0 :(得分:1)
db.test.aggregate(
{ $unwind: "$jobs" },
{ $group:
{ _id: '$jobs.category', total : { '$sum' : 1 } }
},
{ $project: { category : '$_id', _id:0, total:1 } }
).toArray()
这会产生您问题中的结果。
答案 1 :(得分:0)
db.getCollection('test').aggregate(
{ $unwind: "$jobs" },
{ $group:
{ _id: '$jobs.category', total : { '$sum' : 1 } }
}
)