MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

mongodb comment interroger avec l'opérateur nand?

L'opérateur $not n'inverse pas une expression complexe. Vous devez utiliser $and ou $or pour les expressions complexes.

En utilisant des règles logiques, nous savons que les éléments suivants sont identiques :

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

En utilisant le langage de requête MongoDB, vous auriez :

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

OR simplifying the double boolean:

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

En utilisant le framework d'agrégation MongoDB, vous auriez :

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"}}]}}])