我在对象数组中有结果,并且我想在猫鼬中按相同结果分组。例如,我得到以下结果。
[
{
projectId: 5c0a4083753a321c6c4ee024,
userId: 5c0a29c697e71a0d28b910a9
},
{
projectId: 5c0a2a8897e71a0d28b910ac,
userId: 5c0a29e597e71a0d28b910aa,
},
{
projectId: 5c0a4083753a321c6c4ee024,
userId: 5c0a29e597e71a0d28b910aa,
}
]
现在我想为同一用户提供一个对象,并结合如下所示的projectId数组:
{
userId: 5c0a29e597e71a0d28b910aa,
projectId: [
5c0a2a8897e71a0d28b910ac,
5c0a4083753a321c6c4ee024
],
}
答案 0 :(得分:0)
您可以使用以下汇总
db.collection.aggregate([
{ "$group": {
"_id": "$userId",
"projectId": { "$push": "$projectId" }
}},
{ "$lookup": {
"from": "users",
"localField": "_id",
"foreignField": "_id",
"as": "user"
}},
{ "$lookup": {
"from": "projects",
"localField": "projectId",
"foreignField": "_id",
"as": "projectId"
}}
])