MongoDB$lookup函数替换整个文档



我当前运行的查询如下:

courses = await Enrollment.aggregate([
{
$match: {
userId: userId
}
},
{
$lookup: {
from: 'courses',
localField: 'course',
foreignField: '_id',
as: 'course'
}
},
{ 
$unwind: '$course'
},
{
$project: {
course: {
courseCode: true,
name: true,
officialCode: true,
}
}
}
]);

这会产生类似的结果

[{
"_id": "61e0652ba5c2fe5bdcdbdc23",
"course": {
"courseCode": "code2",
"name": "Terst class 2",
"officialCode": "test 202"
}
}]

我想知道是否有一种方法可以让我把courseCodenameofficialCode带到";最高级别";文件?

提前谢谢。

您可以使用$replaceRoot聚合管道来完成此操作。添加此作为最后一步:

{
"$replaceRoot": {
"newRoot": "$course"
}
}

工作示例

最新更新