У меня запрос к MongoDB, например
// Get scoreboard of challenge
response.aggregate = await ScoreBoardModel.aggregate([
{ $match: { challenge_id: mongoose.Types.ObjectId(req.body.challenge_id) } },
{ $group: { _id: '$user_id', value: { $sum: '$value' } } },
]);
Какие выходы типа
[
{
"_id": "5b762887b6e3a91c60c01718",
"value": 4300
},
{
"_id": "5b8b41f10186400163d0df83",
"value": 6800
},
{
"_id": "5b762590b6e3a91c60c01713",
"value": 2023
}
]
Но я хочу выполнить этот запрос примерно так:
response.aggregate = await 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' } } },
]);
Я хочу $lookup
в appusers
, чтобы получить подробную информацию о каждом appusers
.
Как мне это сделать?