Операторът $not не обръща сложен израз. Трябва да използвате $and или $or за сложни изрази.
Използвайки логически правила, знаем, че следните са идентични:
not ( A and B ) = not A or not B
Използвайки езика за заявки MongoDB, ще имате:
db.collection.find({$or:[{"a":{"$ne":false}},{"b":{"$ne":"condition"}}]})
OR simplifying the double boolean:
db.collection.find({$or:[{"a":true},{"b":{"$ne":"condition"}}]})
Използвайки рамката за агрегиране на MongoDB, ще имате:
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"}}]}}])