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
/ /

$not (operador de predicado de consulta)

$not

$not realiza una operación NOT lógica sobre los <operator-expression> especificados y selecciona los documentos que no coinciden con el <operator-expression>. Esto incluye documentos que no contienen el field.

Puedes usar $not para implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

El operador $not tiene la siguiente forma:

{ field: { $not: { <operator-expression> } } }

Considera el siguiente ejemplo:

db.inventory.find( { price: { $not: { $gt: 1.99 } } } )

El ejemplo selecciona todos los documentos de la colección inventory donde:

  • el valor del campo price es menor o igual a 1.99 o

  • el campo price no existe

{ $not: { $gt: 1.99 } } difiere del $lte operador. { $lte: 1.99 } devuelve solo los documentos donde price existe el campo y su valor es menor o igual 1.99 a.

Use el operador $not con otra expresión de operador. Para utilizar $not para una comprobación de desigualdad, usa:

{ price: { $not: { $eq: 1.99 } } }

El query anterior es equivalente a:

{ price: { $ne: 1.99 } }

La siguiente query no es válida porque compara un campo sin un operador:

{ price: { $not: 1.99 } }

El operador $not puede arrojar resultados inesperados cuando se utiliza con un arreglo. Para comparar documentos basado en múltiples condiciones falsas, utiliza $nor.

$not admite operaciones lógicas NOT en:

  • Objetos de expresión regular, como /pattern/.

    La siguiente query selecciona documentos en la colección inventory donde el valor del campo item no comienza con la letra p:

    db.inventory.find( { item: { $not: /^p.*/ } } )
  • $regex expresiones de operador.

    Por ejemplo, el siguiente query selecciona todos los documentos de la colección inventory donde el valor del campo item no comienza con la letra p.

    db.inventory.find( { item: { $not: { $regex: "^p.*" } } } )
    db.inventory.find( { item: { $not: { $regex: /^p.*/ } } } )
  • Objetos de expresión regular del lenguaje del controlador.

    Por ejemplo, el siguiente PyMongoLa consulta utiliza el re.compile() método de Python para compilar una expresión regular:

    import re
    for noMatch in db.inventory.find( { "item": { "$not": re.compile("^p.*") } } ):
    print noMatch

Volver

$nor

En esta página