Docs Menu
Docs Home
/ /

$not

$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.

Utilice el operador $not con otra expresión de operador. Para usar $not en una comprobación de desigualdad, utilice:

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

El query anterior es equivalente a:

{ price: { $ne: 1.99 } }

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

{ price: { $not: 1.99 } }

El $not operador puede producir resultados inesperados al usarse con una matriz. Para encontrar coincidencias de documentos según varias condiciones falsas,$nor use.

$not admite NOT operaciones lógicas en:

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

    La siguiente consulta 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