$nor
On this page
Definition
Examples
$nor
Query with Two Expressions
Consider the following query which uses only the $nor
operator:
db.inventory.find( { $nor: [ { price: 1.99 }, { sale: true } ] } )
This query will return all documents that:
-
contain the
price
field whose value is not equal to1.99
and contain thesale
field whose value is not equal totrue
or -
contain the
price
field whose value is not equal to1.99
but do not contain thesale
field or -
do not contain the
price
field but contain thesale
field whose value is not equal totrue
or -
do not contain the
price
field and do not contain thesale
field
$nor
and Additional Comparisons
Consider the following query:
db.inventory.find( { $nor: [ { price: 1.99 }, { qty: { $lt: 20 } }, { sale: true } ] } )
This query will select all documents in the inventory
collection where:
-
the
price
field value does not equal1.99
and -
the
qty
field value is not less than20
and -
the
sale
field value is not equal totrue
including those documents that do not contain these field(s).
The exception in returning documents that do not contain the field in the $nor
expression is when the $nor
operator is used with the $exists
operator.
$nor
and $exists
Compare that with the following query which uses the $nor
operator with the $exists
operator:
db.inventory.find( { $nor: [ { price: 1.99 }, { price: { $exists: false } }, { sale: true }, { sale: { $exists: false } } ] } )
This query will return all documents that:
-
contain the
price
field whose value is not equal to1.99
and contain thesale
field whose value is not equal totrue