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"
}
}]
我想知道是否有办法将 courseCode
、name
和 officialCode
带到文档的“最高级别”?
提前致谢。
您可以使用 $replaceRoot
聚合管道来完成。将此添加为最后一步:
{
"$replaceRoot": {
"newRoot": "$course"
}
}
我目前 运行 查询如下所示:
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
、name
和 officialCode
带到文档的“最高级别”?
提前致谢。
您可以使用 $replaceRoot
聚合管道来完成。将此添加为最后一步:
{
"$replaceRoot": {
"newRoot": "$course"
}
}