sql >> Database >  >> NoSQL >> MongoDB

MongoDB gebruikt NOT en AND samen

U zoekt NOT (A AND C) , wat gelijk is aan NOT A OR NOT C :

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

MongoDB heeft ook een $nor logische operator die "een logische NOR-bewerking uitvoert op een array van een of meer query-expressies en de documenten selecteert die niet voldoen aan alle query-expressies in de array", dus een equivalente query zou zijn:

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

Het geaccepteerde antwoord raadt aan om een ​​$where . te gebruiken operator, maar dat is hier niet nodig en belast de prestaties.



  1. Hoe voer ik Redis uit op Windows 32 bit?

  2. Time-out bij uitvoeren van SET {Key}, inst:0, mgr:Inactief, wachtrij:2, qu=1, qs=1, qc=0, wr=1/1, in=0/0

  3. Mongo 3.6 aggregatie opzoeken met meerdere voorwaarden

  4. Gebruik createView met allowDiskUse