Mongo:如何过滤出匹配两个未配置的记录?

时间:2019-07-16 10:46:33

标签: mongodb

我们的文档有2个字段:类型(字符串)和代码(整数)

我必须提取所有记录,但排除两个条件都成立的所有记录

  • 类型:“ RTB”
  • 代码:23

我必须看到

  • MTK 23
  • RTB 20

但看不到

  • RTB 23

我认为按原样构成查询:

{ 
  $not:  { 
           $type: "RTB",
           $code: 23 
         } 
}

但是不允许使用$ not作为顶层...

1 个答案:

答案 0 :(得分:1)

您可以使用$not运算符代替$ne

db.collection.find({
  "$expr": {
    "$not": {
      "$and": [
        { "$eq": ["$type", "RTB"] },
        { "$eq": ["$code", 23] }
      ]
    }
  }
})

MongoPlayground