Este capítulo apresenta os operadores lógicos do MongoDB, semelhantes às condições "and" e "or" no SQL.
Operadores lógicos suportados pelo MongoDB
Operador | Descrição |
---|---|
$and | Entrega documentos que satisfazem todas as condições especificadas, semelhante à condição "and" no SQL |
$not | Realiza a operação lógica NOT na expressão especificada |
$or | Entrega documentos que satisfazem pelo menos uma das condições especificadas, semelhante à condição "or" no SQL |
$nor | Entrega documentos que não satisfazem ambas as condições especificadas |
$and
Sintaxe:
{ $and: [ { <expressão1> }, { <expressão2> }, ... , { <expressãoN> } ] }
Explicação:
- <expressão> é uma subexpressão
- $and recebe um array contendo um grupo de subexpressões, e todas as subexpressões devem ser satisfeitas
Exemplo:
db.inventory.find( { $and: [ { qty: { $lt : 10 } }, { qty : { $gt: 50 } }] } )
SQL equivalente:
select * from inventory where qty > 50 and qty < 10
$not
db.inventory.find( { price: { $not: { $gt: 1.99 } } } )
Explicação:
- Se a condição for price > 1.99, então a operação NOT seria price <= 1.99.
- Isso significa consultar documentos onde o preço é menor ou igual a 1.99 ou onde o campo de preço não existe.
Similar ao SQL:
select * from inventory where price <= 1.99
$or
Similar à condição "or" no SQL Sintaxe:
{ $or: [ { <expressão1> }, { <expressão2> }, ... , { <expressãoN> } ] }
Explicação:
- <expressão> é uma subexpressão
- $or recebe um array contendo um grupo de subexpressões e pelo menos uma subexpressão deve ser satisfeita
Exemplo:
db.inventory.find( { $or: [ { quantity: { $lt: 20 } }, { price: 10 } ] } )
SQL equivalente:
select * from inventory where quantity < 20 or price=10
$nor
Operação NOR lógica Sintaxe:
{ $nor: [ { <expressão1> }, { <expressão2> }, ... , { <expressãoN> } ] }
Exemplo:
db.inventory.find( { $nor: [ { price: 1.99 }, { sale: true } ] } )
Explicação:
- price != 1.99 e sale != true, ou
- price != 1.99 e o campo sale não está presente, ou
- o campo price não está presente e sale != true