Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / / /

$nor

Nesta página

  • Definição
  • Exemplos
$nor

$nor executa uma operação lógica NOR em uma array de um ou mais predicados de query e seleciona os documentos que reprovam em todos os predicados de query na array. O $nor tem a seguinte sintaxe:

{ $nor: [ { <expression1> }, { <expression2> }, ... { <expressionN> } ] }

Considere a seguinte query, que usa somente o operador $nor:

db.inventory.find( { $nor: [ { price: 1.99 }, { sale: true } ] } )

Esta query retornará todos os documentos que:

  • contiverem o campo price cujo valor for não igual a 1.99 e contiverem o campo sale cujo valor não for igual a true ou

  • contiverem o campo price cujo valor não for igual a 1.99, mas não contiverem o campo sale ou

  • não contiverem o campo price , mas contiverem o campo sale cujo valor não for igual a true ou

  • não contiverem o campo price e não contiverem o campo sale

Considere a seguinte query:

db.inventory.find( { $nor: [ { price: 1.99 }, { qty: { $lt: 20 } }, { sale: true } ] } )

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

  • o valor do campo price não for igual a 1.99 e

  • o valor do campo qty não for inferior a 20 e

  • o valor do campo sale não for igual a true

incluindo os documentos que não contiverem esses campos.

A exceção em documentos de retorno que não contêm o campo na expressão $nor é quando o operador $nor é utilizado com o operador $exists .

Compare isso com a query a seguir, que usa o operador $nor com o operador $exists:

db.inventory.find( { $nor: [ { price: 1.99 }, { price: { $exists: false } },
{ sale: true }, { sale: { $exists: false } } ] } )

Esta query retornará todos os documentos que:

  • contiverem o campo price cujo valor não for igual a 1.99 e contiverem o campo sale cujo valor não for igual a true

Dica

Veja também:

Voltar

$not

Nesta página