这是我的文件:
member: [
{
name: 'Jack',
group: 0
},
{
name: 'Rose',
group: 0
},
{
name: 'Tom',
group: 1
}
]
首先,计算成员数量,然后将它们分组。
返回:
{
count: 3,
member: [
[
{name: 'Jack'},
{name: 'Rose'}
],
[
{name: 'Tom'}
]
]
}
怎么办?非常感谢你!
答案 0 :(得分:0)
首先,您应该使用member
中的$size
来计算$project
数组大小,然后在unwind
member
之后对其进行分组,并在下面查询:
db.collectionName.aggregate({
"$project": {
"count": {
"$size": "$member"
},
"member": 1
}
}, {
"$unwind": "$member"
}, {
"$group": {
"_id": "$member.group",
"data": {
"$push": {
"name": "$member.name"
}
},
"count": {
"$first": "$count"
}
}
}, {
"$group": {
"_id": "$count",
"member": {
"$push": "$data"
}
}
}).pretty()