Estás buscando NOT (A AND C)
, que es equivalente a NOT A OR NOT C
:
db.collection.find({
"$or": [
{"institution_type": {"$ne": "A"}},
{"type": {"$ne": "C"}}
]
})
MongoDB también tiene un $nor operador lógico que "realiza una operación NOR lógica en una matriz de una o más expresiones de consulta y selecciona los documentos que fallan en todas las expresiones de consulta de la matriz", por lo que una consulta equivalente sería:
db.collection.find({
"$nor": [
{"institution_type": "A"},
{"type": "C"}
]
})
La respuesta aceptada recomienda usar un $where
operador, pero eso es innecesario aquí y grava el rendimiento.