Szukasz NOT (A AND C)
, który jest odpowiednikiem NOT A OR NOT C
:
db.collection.find({
"$or": [
{"institution_type": {"$ne": "A"}},
{"type": {"$ne": "C"}}
]
})
MongoDB ma również $nor operator logiczny, który „wykonuje logiczną operację NOR na tablicy jednego lub więcej wyrażeń zapytania i wybiera dokumenty, które nie spełniają wszystkich wyrażeń zapytania w tablicy”, więc równoważne zapytanie będzie wyglądało następująco:
db.collection.find({
"$nor": [
{"institution_type": "A"},
{"type": "C"}
]
})
Przyjęta odpowiedź zaleca użycie $where
operatora, ale jest to tutaj niepotrzebne i opodatkowuje wydajność.