MongoDB提供了不同类型的逻辑查询运算符,而$not
运算符就是其中之一。该运算符用于对指定的运算符表达式执行逻辑“非”运算,并仅选择或检索与给定运算符表达式不匹配的那些文档。它还包括那些不包含该字段的文档。您可以根据需要在find()
, update()
等方法中使用此运算符。
- 始终将$ not运算符与其他运算符符一起使用,因为它不能独立检查字段和文档,而只会影响其他运算符。
- 您可以将$ not运算符与正则表达式一起使用。
- 此运算符的此运算符与其他运算符的行为一致,但是对于某些数据类型(如数组),可能会产生某些意外结果。
句法:
{ field: { $not: { operator-expression } } }
在以下示例中,我们正在使用:
Database: GeeksforGeeks
Collection: contributor
Document: three documents that contain the details of the contributors in the form of field-value pairs.
使用$not
运算符匹配值:
在此示例中,我们仅检索薪水不超过2000的那些雇员的文档。
db.contributor.find({salary: {$not: {$gt: 2000}}}).pretty()
使用$not
运算符匹配嵌套/嵌入文档中的值:
在此示例中,我们仅检索年龄不等于24岁的那些雇员的文档。
db.contributor.find({"personal.age": {$not: {$eq: 24}}}).pretty()
使用$not
运算符匹配数组中的值:
在此示例中,我们仅检索与给定数组不匹配的那些雇员的文档。
db.contributor.find({language: {$not: {$in: ["Java", "Perl"]}}}).pretty()