我正在尝试汇总用户集合,并$project
列出我需要的字段。然后,我想在$lookup
中设置let变量,以便能够使用该变量查找匹配的文档。
我想用这种方式,因为变量中会有很多$lookups
。
但是,我无法使其正常工作。变量我在做什么错?
$project: {
_id: 1,
name: 1,
goal: 1
}
},
{
$lookup: {
from: "goals",
let: { user: "$_id" },
pipeline: [
{
$match: {
"user": "$$user"
}
},
{ $project: { _id: 0, leads: 0 } },
],
as: "goal"
}
},
{
$project: {
_id: 1,
name: 1,
goal: 1
}
},
答案 0 :(得分:1)
您需要在$match
阶段使用{ $match: { $expr: { $eq: ['$user', '$$user'] }}}
来使用变量名。
{{1}}