通过$ project字段汇总和$ lookup

时间:2019-06-26 08:51:05

标签: javascript mongodb mongoose mongodb-query aggregation-framework

我正在尝试汇总用户集合,并$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
    }
},

1 个答案:

答案 0 :(得分:1)

您需要在$match阶段使用{ $match: { $expr: { $eq: ['$user', '$$user'] }}} 来使用变量名。

{{1}}