📜  MongoDB NOT运算符($ not)(1)

📅  最后修改于: 2023-12-03 14:44:21.853000             🧑  作者: Mango

MongoDB NOT运算符 ($not)

在MongoDB中,$not运算符用于对查询条件进行NOT操作,该操作将匹配查询条件不满足的所有文档。在本文中,我们将学习如何使用$not运算符进行MongoDB查询。

语法

MongoDB的$not运算符语法如下所示:

{ field: { $not: { operaion } } }

其中:

  • field表示要进行操作的字段;
  • operation表示一个查询条件操作符,例如 $eq$neq$gt等。
示例

假设我们有以下文档:

[
  { "_id": 1, "name": "apple", "price": 1.99 },
  { "_id": 2, "name": "banana", "price": 0.99 },
  { "_id": 3, "name": "carrot", "price": 0.49 },
]
查询价格不为1.99的所有文档
db.products.find({ price: { $not: { $eq: 1.99 } } })

解释:

  • $eq表示相等运算符;
  • $not表示非运算符;
  • { price: { $not: { $eq: 1.99 } } }表示价格字段不等于1.99的所有文档。

查询结果:

[
  { "_id": 2, "name": "banana", "price": 0.99 },
  { "_id": 3, "name": "carrot", "price": 0.49 }
]
查询文档名称不以字母a结尾的所有文档
db.products.find({ name: { $not: /a$/ } })

解释:

  • /a$/表示以字母a结尾的正则表达式;
  • { name: { $not: /a$/ } }表示名称字段不以字母a结尾的所有文档。

查询结果:

[
  { "_id": 2, "name": "banana", "price": 0.99 },
  { "_id": 3, "name": "carrot", "price": 0.49 }
]
注意事项
  • $not运算符只能用于具有单一值的字段,例如数字、字符串和日期等。不能用于具有数组或子文档的字段。
  • 当使用正则表达式时,需要将正则表达式用花括号{}括起来,例如{ field: { $not: /regex/ } }

以上就是MongoDB中$not运算符的介绍,希望对你有所帮助。