De operator $not keert geen complexe uitdrukking om. U moet $and of $or gebruiken voor complexe uitdrukkingen.
Met behulp van logische regels weten we dat de volgende identiek zijn:
not ( A and B ) = not A or not B
Als u de MongoDB-querytaal gebruikt, zou u:
db.collection.find({$or:[{"a":{"$ne":false}},{"b":{"$ne":"condition"}}]})
OR simplifying the double boolean:
db.collection.find({$or:[{"a":true},{"b":{"$ne":"condition"}}]})
Met behulp van het MongoDB-aggregatieraamwerk zou u:
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"}}]}}])