1

我目前正在运行一个如下所示的查询:

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

我想知道是否有办法让我将courseCode,nameofficialCode带到文件的“最高级别”?

先感谢您。

4

1 回答 1

1

您可以使用$replaceRoot聚合管道来做到这一点。将此添加为最后一步:

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

工作示例

于 2022-01-13T19:22:23.690 回答