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 } } } )

Este query seleccionará 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 } } es diferente del operador { $lte: 1.99 }. { $lte: 1.99 } devuelve únicamente los documentos donde el campo price existe y su valor es menor o igual a 1.99.

Debes usar el operador $not con otra expresión de operador. Por ejemplo, para usar $not para realizar una comprobación de desigualdad, usa esta sintaxis:

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

El query anterior es equivalente a:

{ price: { $ne: 1.99 } }

El siguiente $not query es inválido porque intenta comparar un campo sin un Operador:

{ price: { $not: 1.99 } }

Cuando se pasa un argumento de arreglo, el Operador $not puede producir resultados inesperados. Para hacer coincidir documentos basados en múltiples condiciones falsas, utiliza $nor.

El operador $not puede realizar una operación lógica NOT en:

  • Objetos de expresiones regulares (es decir, /pattern/)

    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: /^p.*/ } } )
  • $regex expresión 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

Tip

Volver

$nor

En esta página