$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
pricefield whose value is not equal to1.99and contain thesalefield whose value is not equal totrueor -
contain the
pricefield whose value is not equal to1.99but do not contain thesalefield or -
do not contain the
pricefield but contain thesalefield whose value is not equal totrueor -
do not contain the
pricefield and do not contain thesalefield
$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
pricefield value does not equal1.99and -
the
qtyfield value is not less than20and -
the
salefield 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
pricefield whose value is not equal to1.99and contain thesalefield whose value is not equal totrue