Menu Docs
Página inicial do Docs
/ /

$not

$not

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

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

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

  • MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB

  • MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB

O operador $not tem o seguinte formato:

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

Considere o seguinte exemplo de query:

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

Esta query seleciona todos os documentos na collection inventory que atendem a uma das seguintes condições:

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

  • o valor do campo price não é numérico

  • o campo price não existe

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

Use o operador $not com outra expressão de operador. Para usar $not para uma verificação de desigualdade, use:

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

A consulta anterior é equivalente a:

{ price: { $ne: 1.99 } }

A seguinte query é inválida porque compara um campo sem um operador:

{ price: { $not: 1.99 } }

O $not operador pode gerar resultados inesperados quando usado com uma array. Para combinar documentos com base em várias condições falsas,$nor use.

$not O suporta NOT operações lógicas do em:

  • Objetos de expressão regular, como /pattern/.

    A seguinte query seleciona 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ões 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, a seguinte query do PyMongo utiliza o método re.compile() do Python para compilar uma expressão regular:

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

Voltar

$nor

Nesta página