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.