文档菜单
文档首页
/
MongoDB 手册
/ / / /

$nor

在本页

  • 定义
  • 示例
$nor

$nor 对一个或多个查询谓词数组执行逻辑NOR运算,并选择那些在数组中所有查询谓词都失败的文档。 $nor 的语法如下

{ $nor: [ { <expression1> }, { <expression2> }, ... { <expressionN> } ] }

考虑以下仅使用 $nor 操作符的查询

db.inventory.find( { $nor: [ { price: 1.99 }, { sale: true } ] } )

此查询将返回所有包含以下条件的文档:

  • 包含 price 字段且其值不等于 1.99 的文档,并且包含 sale 字段且其值不等于 true

  • 包含 price 字段且其值不等于 1.99 但不包含 sale 字段

  • 不包含 price 字段 包含 sale 字段且其值不等于 true

  • 不包含 price 字段 并且 不包含 sale 字段

考虑以下查询

db.inventory.find( { $nor: [ { price: 1.99 }, { qty: { $lt: 20 } }, { sale: true } ] } )

此查询将选择 inventory 集合中所有满足以下条件的文档:

  • price 字段值不等于 1.99 并且

  • 字段值 qty 不小于 20 并且

  • 字段值 sale 不等于 true

包括那些不包含这些字段(们)的文档。

在返回不包含 $nor 表达式中字段的文档时出现的异常是,当使用 $nor 操作符与$exists 操作符。

与以下使用 $nor 操作符和 $exists 操作符的查询进行比较

db.inventory.find( { $nor: [ { price: 1.99 }, { price: { $exists: false } },
{ sale: true }, { sale: { $exists: false } } ] } )

此查询将返回所有包含以下条件的文档:

  • 包含字段 price 的值不等于 1.99,并且包含字段 sale 的值不等于 true

提示

另请参阅

返回

$not

在本页