Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

$nor (operador de predicado de consulta)

$nor

$nor realiza una operación lógica NOR en un arreglo de uno o más predicados de query y selecciona los documentos que no cumplen ninguno de los predicados de query del arreglo. El $nor tiene la siguiente sintaxis:

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

Considera la siguiente query que utiliza únicamente el operador $nor:

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

Esta query devolverá todos los documentos que:

  • contener el campo price cuyo valor no es igual a 1.99 y contener el campo sale 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 campo price y no contienen el campo sale

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 valor del campo price no es igual a 1.99 y

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

  • el valor del campo sale 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.

Compárelo con la siguiente query que utiliza el operador $nor con el operador $exists:

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

Esta query 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

$and

En esta página