Bạn có thể thử tổng hợp dưới đây trong 3.4.
$lookup
để tra cứu điểm cho các bản nhạc đã hoàn thành, sau đó là $addFields
để trả về trường điểm tổng hợp các điểm và $project
với loại trừ để loại bỏ trường dữ liệu tra cứu khỏi phản hồi.
UserModel.aggregate([
{"$lookup":{
"from":"tracks", // name of the foreign collection
"localField":"completedTracks",
"foreignField":"_id",
"as":"lookup-data"
}},
{"$addFields":{
"score":{
"$sum":"$lookup-data.points"
}
}},
{"$project":{"lookup-data":0}}
])