MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB verwendet NOT und AND zusammen

Sie suchen nach NOT (A AND C) , was NOT A OR NOT C entspricht :

db.collection.find({
  "$or": [
    {"institution_type": {"$ne": "A"}},
    {"type": {"$ne": "C"}}
  ]
})

MongoDB hat auch einen $nor logischer Operator, der "eine logische NOR-Operation auf einem Array von einem oder mehreren Abfrageausdrücken durchführt und die Dokumente auswählt, die alle Abfrageausdrücke im Array nicht bestehen", also wäre eine äquivalente Abfrage:

db.collection.find({
  "$nor": [
    {"institution_type": "A"},
    {"type": "C"}
  ]
})

Die akzeptierte Antwort empfiehlt die Verwendung eines $where Betreiber, aber das ist hier unnötig und belastet die Performance.