MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDB usando NOT e AND juntos


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.