【问题标题】:Aggregate and $lookup by $project field按 $project 字段聚合和 $lookup
【发布时间】:2019-11-08 03:57:26
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    您需要使用$expr$match 阶段内使用变量名。

    { $match: { $expr: { $eq: ['$user', '$$user'] }}}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-11
      • 2019-01-29
      • 2020-08-07
      • 2021-06-04
      • 2019-01-27
      • 2019-04-18
      • 2018-08-06
      • 2019-02-25
      相关资源
      最近更新 更多