Docs Menu
Docs Home
/
MongoDB Manual
/ / / /

$nor

On this page

  • Definition
  • Examples
$nor

$nor performs a logical NOR operation on an array of one or more query predicates and selects the documents that fail all the query predicates in the array. The $nor has the following syntax:

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

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 to 1.99 and contain the sale field whose value is not equal to true or

  • contain the price field whose value is not equal to 1.99 but do not contain the sale field or

  • do not contain the price field but contain the sale field whose value is not equal to true or

  • do not contain the price field and do not contain the sale field

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 equal 1.99 and

  • the qty field value is not less than 20 and

  • the sale field value is not equal to true

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.

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 to 1.99 and contain the sale field whose value is not equal to true

Tip

See also:

Back

$not

On this page