Mongodb $查找多个字段

时间:2017-09-08 18:45:20

标签: mongodb

我有两个集合,productsproperties

我正在进行查询,例如:

[{
        $match: {
            category_id: mongoose.Types.ObjectId(category_id)
        }
    },
    {
        $lookup: {
            from: "properties",
            localField: "category_id",
            foreignField: "category_id",
            as: "properties"
        }
    }
]

这基本上是让我获得与category_id匹配的所有产品,包括与相同category_id匹配的属性。

我需要在some_id结果上为properties添加额外的检查。换句话说,properties应按some_id集合中返回的products进行分组,并与properties中的相同密钥匹配。那有意义吗?基本上具有多个本地/外部字段定义的能力。

任何想法我怎么能这样?

1 个答案:

答案 0 :(得分:0)

从3.6版开始,我们可以使用不相关的子查询

{
   $lookup:
     {
       from: <collection to join>,
       let: { <var_1>: <expression>, …, <var_n>: <expression> },
       pipeline: [ <pipeline to execute on the collection to join> ],
       as: <output array field>
     }
}

这使我们在查找中可以具有多个同等匹配项。 另请参阅:https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/