Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

$not

Nesta página

  • Definição
  • Compatibilidade
  • Sintaxe
  • Comportamento
$not

$not executa uma operação NOT lógica no <operator-expression> especificado e seleciona os documentos que não correspondem ao <operator-expression>. Inclui documentos que não contêm field.

Você pode utilizar o $not para implantações hospedadas nos seguintes ambientes:

  • MongoDB Atlas: o serviço totalmente gerenciado para implantações MongoDB na nuvem

O operador $not tem o seguinte formato:

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

Considere o seguinte exemplo:

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

Esta query selecionará todos os documentos na collection inventory onde:

  • o valor do campo price é menor ou igual a 1.99 ou

  • o campo price não existe

{ $not: { $gt: 1.99 } } é diferente do operador $lte. { $lte: 1.99 } retorna apenas os documentos onde o campo price existe e seu valor é menor ou igual a 1.99.

Lembre-se de que o operador $not afeta apenas outros operadores e não pode verificar campos e documentos de forma independente. Portanto, use o operador $not para disjunções lógicas e o operador $ne para testar diretamente o conteúdo dos campos.

A operação do operador $not é consistente com o comportamento de outros operadores, mas pode produzir resultados inesperados com alguns tipos de dados, como arrays.

O operador $not pode executar operação lógica NOT em:

  • Objetos de expressão regular (ou seja, /pattern/)

    Por exemplo, a seguinte query seleciona todos os documentos na collection inventory onde o valor do campo item não começa com a letra p.

    db.inventory.find( { item: { $not: /^p.*/ } } )
  • $regex expressão do operador

    Por exemplo, a seguinte query seleciona todos os documentos na collection inventory onde o valor do campo item não começa com a letra p.

    db.inventory.find( { item: { $not: { $regex: "^p.*" } } } )
    db.inventory.find( { item: { $not: { $regex: /^p.*/ } } } )
  • objetos de expressão regular da linguagem do driver

    Por exemplo, o seguinte PyMongo A query utiliza o método do Python re.compile() para compilar uma expressão regular:

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

Dica

Veja também:

← $and
$nor →