MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB usando NOT e AND insieme

Stai cercando NOT (A AND C) , che equivale a NOT A OR NOT C :

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

MongoDB ha anche un $nor operatore logico che "esegue un'operazione NOR logica su un array di una o più espressioni di query e seleziona i documenti che non superano tutte le espressioni di query nell'array", quindi una query equivalente sarebbe:

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

La risposta accettata consiglia di utilizzare un $where operatore, ma questo non è necessario qui e tassa le prestazioni.