问题部分是{ $match: { contentId: "$$content_id" }}
在管道内部。它返回一个空数组。但是当我像下面这样更改它时,它可以正常工作。这是我的聚合管道的阶段对象。第一个是什么问题?当let变量为objectId时,简单匹配设计为在查找管道中不起作用。感谢您的时间。
const contentReactionLookUp = (user_id) => {
return {
$lookup: {
from: "contentreactions",
let: { content_id: "$_id" },
pipeline: [
{ $match:
{ $expr:
{ $eq: [ "$contentId", "$$content_id" ] },
}
},
//{ $match: { contentId: "$$content_id" }}, it doenst' work!
],
as: "userReaction"
},
}
}
答案 0 :(得分:0)
https://docs.mongodb.com/manual/meta/aggregation-quick-reference/#aggregation-expressions我在这里找到了解决方案。如果其传递的值是字段路径,则mongo聚合简单匹配不起作用。