Operatorn $not inverterar inte ett komplext uttryck. Du måste använda $and eller $or för komplexa uttryck.
Med hjälp av logiska regler vet vi att följande är identiska:
not ( A and B ) = not A or not B
Om du använder MongoDB-frågespråket skulle du ha:
db.collection.find({$or:[{"a":{"$ne":false}},{"b":{"$ne":"condition"}}]})
OR simplifying the double boolean:
db.collection.find({$or:[{"a":true},{"b":{"$ne":"condition"}}]})
Med MongoDB-aggregationsramverket skulle du ha:
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"}}]}}])