具有“和”、“或”和“在”条件的 MongoDB 聚合

问题描述 投票:0回答:1
{ "$match": { "$and": [ { "is_active": { "$eq": True }},{ "is_delete": { "$eq": False }}] } }

这是我查找聚合的匹配条件,它工作正常。

现在我需要再添加两个条件,这些不是必填字段,它们可能是null或not,我想我需要里面的or条件,当我通过abc时,条件作为顶级查询xyz 它正在工作,如果我没有通过两者或任何失败的(没有提供正确的数据)

{ "abc_id" : { "$eq": abc } },{ "xyz_id" : {"$in": [xyz]} }

我怎样才能做到这一点,感谢您的投入。

mongodb match pipeline lookup aggregation
1个回答
0
投票

你可以包括

or

{
  "$match": {
    "$and": [
      { "is_active": { "$eq": True } },
      { "is_delete": { "$eq": False } },
      {
        "$or": [
          { "abc_id": { "$eq": abc } },
          { "xyz_id": { "$in": [xyz] } }
        ]
      }
    ]
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.