[英]Aggregate and $lookup by $project field
我试图聚合我的用户集合并$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
}
},
您需要使用$expr
在$match
阶段中使用变量名。
{ $match: { $expr: { $eq: ['$user', '$$user'] }}}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.