MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

mongodb come eseguire query con l'operatore nand?

L'operatore $not non inverte un'espressione complessa. Devi usare $and o $or per espressioni complesse.

Utilizzando le regole logiche, sappiamo che le seguenti sono identiche:

    not ( A and B ) = not A or not B

Usando il linguaggio di query MongoDB, avresti:

db.collection.find({$or:[{"a":{"$ne":false}},{"b":{"$ne":"condition"}}]})

OR simplifying the double boolean:

db.collection.find({$or:[{"a":true},{"b":{"$ne":"condition"}}]})

Utilizzando il framework di aggregazione MongoDB, avresti:

db.collection.aggregate([{"$match":{$or:[{"a":{"$ne":false}},{"b":{"$ne":"condition"}}]}}])

OR again, simplified to:

db.collection.aggregate([{"$match":{$or:[{"a":true},{"b":{"$ne":"condition"}}]}}])