sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB usando NOT y AND juntos

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.