Operatoren $not inverterer ikke et komplekst udtryk. Du skal bruge $and eller $or til komplekse udtryk.
Ved at bruge logiske regler ved vi, at følgende er identiske:
not ( A and B ) = not A or not B
Ved at bruge MongoDB-forespørgselssproget ville du have:
db.collection.find({$or:[{"a":{"$ne":false}},{"b":{"$ne":"condition"}}]})
OR simplifying the double boolean:
db.collection.find({$or:[{"a":true},{"b":{"$ne":"condition"}}]})
Ved at bruge MongoDB-aggregationsrammerne ville du have:
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"}}]}}])