Você está procurando por
NOT (A AND C)
, que é equivalente a NOT A OR NOT C
:db.collection.find({
"$or": [
{"institution_type": {"$ne": "A"}},
{"type": {"$ne": "C"}}
]
})
O MongoDB também tem um $nor operador lógico que "executa uma operação NOR lógica em uma matriz de uma ou mais expressões de consulta e seleciona os documentos que falham em todas as expressões de consulta na matriz", portanto, uma consulta equivalente seria:
db.collection.find({
"$nor": [
{"institution_type": "A"},
{"type": "C"}
]
})
A resposta aceita recomenda usar um
$where
operador, mas isso é desnecessário aqui e tributa o desempenho.