Ce chapitre introduit les opérateurs logiques de MongoDB, similaires aux conditions "et" et "ou" en SQL.
Opérateurs logiques pris en charge par MongoDB
Opérateur | Description |
---|---|
$and | Correspond aux documents qui satisfont toutes les conditions spécifiées, semblable à la condition "et" en SQL |
$not | Effectue une opération logique NON sur l'expression spécifiée |
$or | Correspond aux documents qui satisfont au moins une des conditions spécifiées, semblable à la condition "ou" en SQL |
$nor | Correspond aux documents qui ne satisfont ni l'une ni l'autre des conditions spécifiées |
$and
Syntaxe:
{ $and: [ { <expression1> }, { <expression2> }, ... , { <expressionN> } ] }
Explication:
-
est une sous-expression - $and prend un tableau contenant un groupe de sous-expressions, toutes les sous-expressions doivent être satisfaites
Exemple:
db.inventory.find( { $and: [ { qty: { $lt : 10 } }, { qty : { $gt: 50 } }] } )
Équivalent SQL:
select * from inventory where qty > 50 and qty < 10
$not
db.inventory.find( { price: { $not: { $gt: 1.99 } } } )
Explication:
- Si la condition est prix > 1.99, alors l'opération NOT serait prix <= 1.99.
- Cela signifie interroger les documents où le prix est inférieur ou égal à 1.99 ou où le champ de prix n'existe pas.
Similaire à SQL:
select * from inventory where price <= 1.99
$or
Similaire à la condition "ou" en SQL Syntaxe:
{ $or: [ { <expression1> }, { <expression2> }, ... , { <expressionN> } ] }
Explication:
-
est une sous-expression - $or prend un tableau contenant un groupe de sous-expressions, au moins une sous-expression doit être satisfaite
Exemple:
db.inventory.find( { $or: [ { quantity: { $lt: 20 } }, { price: 10 } ] } )
Équivalent SQL:
select * from inventory where quantity < 20 or price=10
$nor
Opération NOR logique Syntaxe:
{ $nor: [ { <expression1> }, { <expression2> }, ... , { <expressionN> } ] }
Exemple:
db.inventory.find( { $nor: [ { price: 1.99 }, { sale: true } ] } )
Explication:
- prix != 1.99 et vente != vrai, ou
- prix != 1.99 et le champ vente n'est pas présent, ou
- le champ prix n'est pas présent et vente != vrai