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