MongoDB $lookup 函数替换整个文档

MongoDB $lookup function replace whole document

我目前 运行 查询如下所示:

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"
  }
}

Working example