我需要从Mongodb中的用户集合生成统计数据。
用户模式:
{
_id: ObjectId,
name: string,
city: string,
gender: enunm["Male", "Female"],
}
统计模式:
[
{
city: string,
Male: number, (number of males in that $city)
Female: number, (number of females in that $city)
}
]
应使用什么聚合管道?
我试过这样的方法:
db.testCollection.aggregate([
{ $group: { _id: "$status", totalQuantity: { $count: "$stats" } } },
]);
2条答案
按热度按时间plicqrtu1#
您希望在分组时使用
$cond
对性别值进行有条件求和,如下所示:Mongo Playground
c86crjj02#
另一种方法是: