使用“and”和“or”和“in”条件的MongoDB聚合

2fjabf4q  于 2023-03-17  发布在  Go
关注(0)|答案(1)|浏览(134)
{ "$match": { "$and": [ { "is_active": { "$eq": True }},{ "is_delete": { "$eq": False }}] } }

这是查找聚合的匹配条件,它工作正常。
现在,我需要再添加两个条件,这些不是必填字段,它们可以是null或not,我认为我需要or条件,其中and条件作为顶级查询,当我传递abcxyz时,它是工作的,如果我没有传递这两个或任何一个,它将失败(没有返回正确的数据)。

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

我怎样才能做到这一点?谢谢你的意见。

bq3bfh9z

bq3bfh9z1#

您可以包括or

{
  "$match": {
    "$and": [
      { "is_active": { "$eq": True } },
      { "is_delete": { "$eq": False } },
      {
        "$or": [
          { "abc_id": { "$eq": abc } },
          { "xyz_id": { "$in": [xyz] } }
        ]
      }
    ]
  }
}

相关问题