Vous devez utiliser $first
opérateur d'agrégation pour retourner le premier document après avoir appliqué le $group
étape.
ScoreBoardModel.aggregate([
{ "$match": { challenge_id: mongoose.Types.ObjectId(req.body.challenge_id) } },
{ "$lookup": {
"from": "appusers",
"let": { "user_id": "$user_id" },
"pipeline": [{ "$match": { "$expr": { "$eq": [ "$_id", "$$user_id" ] } } }],
"as": "user"
}},
{ "$group": {
"_id": "$user_id",
"value": { "$sum": "$value" },
"appusers": { "$first": "$user" },
}}
])