Docs Menu
Docs Home
/ /
Consulta lógica

$nor

$nor

$nor realiza una NOR operación lógica en una matriz de una o más expresiones de consulta y selecciona los documentos que no superan todas las expresiones de consulta de la matriz. La operación tiene la siguiente $nor sintaxis:

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

Considere la siguiente consulta que utiliza sólo el $nor operador:

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

Esta consulta devolverá todos los documentos que:

  • contener el price campo cuyo valor no es igual a 1.99 y contener el sale campo cuyo valor no es igual a true o

  • contienen el price campo cuyo valor no es igual a 1.99 pero no contienen el sale campo o

  • no contienen el price campo pero contienen el sale campo cuyo valor no es igual a true o

  • no contienen el price campo y no contienen el sale campo

Considera el siguiente query:

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

Este query seleccionará todos los documentos de la colección inventory donde:

  • El price valor del campo no es igual 1.99 a y

  • El qty valor del campo no es menor que 20 y

  • El sale valor del campo no es igual a true

incluidos aquellos documentos que no contienen estos campos.

La excepción al devolver documentos que no contienen el campo en la expresión $nor $nor es cuando se usa el operador con la $exists operador.

Compare esto con la siguiente consulta que utiliza el operador $nor $exists con el operador:

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

Esta consulta devolverá todos los documentos que:

  • contener el price campo cuyo valor no es igual a 1.99 y contener el sale campo cuyo valor no es igual a true

Tip

Volver

$not

En esta página