我有一个名为用户的收藏集
var UserSchema = new Schema({
name: String,
age: Number,
points: {type: Number, default: 0}
})
所有用户都有一些不同的观点,例如5、10、20、50 所以我想统计拥有5分,10分等的用户数量,并且还想显示所统计的用户详细信息,例如谁是拥有5分,10分等的用户。
如何在$ aggregate中为此编写查询
答案 0 :(得分:0)
您可以编写一个小组讨论阶段,并使用$ push运算符推送所有需要的值
db.collection.aggregate([
{
"$group": {
"_id": "$points",
"details": {
"$push": {
"name": "$name",
"age": "$age"
}
}
}
}
])
在上面的示例中,我根据得分进行了分组,对于每个组,您将获得一个数组,其中包含拥有这些得分的人的姓名和年龄