MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB utilisant NOT et AND ensemble

Vous recherchez NOT (A AND C) , qui équivaut à NOT A OR NOT C :

db.collection.find({
  "$or": [
    {"institution_type": {"$ne": "A"}},
    {"type": {"$ne": "C"}}
  ]
})

MongoDB a également un $nor opérateur logique qui "effectue une opération NOR logique sur un tableau d'une ou plusieurs expressions de requête et sélectionne les documents qui échouent à toutes les expressions de requête du tableau", donc une requête équivalente serait :

db.collection.find({
  "$nor": [
    {"institution_type": "A"},
    {"type": "C"}
  ]
})

La réponse acceptée recommande d'utiliser un $where opérateur, mais cela est inutile ici et pénalise les performances.