查找管道中的ObjectId匹配无法正常工作

时间:2019-10-11 13:30:52

标签: mongodb mongoose aggregate

问题部分是{ $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"
        },
    }
}

1 个答案:

答案 0 :(得分:0)

https://docs.mongodb.com/manual/meta/aggregation-quick-reference/#aggregation-expressions我在这里找到了解决方案。如果其传递的值是字段路径,则mongo聚合简单匹配不起作用。