【发布时间】:2020-09-16 02:26:23
【问题描述】:
我在 MongoDB 中有以下集合 (mongoplayground) [characters,guilds]
我想创建一个$lookup,它将rank 字段添加到生成的文档中,如下所示:
"members_t": [
{
"_id": ObjectId("5a934e000102030405000000"),
"level": 20,
"name": "test1",
"rank": 1
},
{
"_id": ObjectId("5a934e000102030405000001"),
"level": 40,
"name": "test2",
"rank": 2
}
]
旧的$lookup 语法对此无能为力,但以下使用新语法的查询会在tested 字段中返回一个空数组(即使没有$addFields 阶段):
{
$lookup: {
from: "characters",
let: {
members_name: "$members.name",
rank: "$members.rank"
},
pipeline: [
{
$match: {
name: "$$members_name"
}
}
],
as: "tested"
}
}
那么,是否有任何选项可以在$lookup 阶段之后添加额外的字段?
(Mongo -v 4.2.3,所以问题与新语法支持无关)
【问题讨论】:
标签: javascript mongodb mongoose mongodb-query aggregation-framework