$not অপারেটর জটিল এক্সপ্রেশন ইনভার্ট করতে পারে না। তাই $and বা $or-এর সাথে $ne অপারেটর ব্যবহার করুন।
ডকুমেন্টসহ একটি কলেকশন তৈরি করি:
> db.demo266.insertOne({"active1":true,"active2":false});
{ "acknowledged" : true, "insertedId" : ObjectId("5e480f4b1627c0c63e7dbaa7") }
> db.demo266.insertOne({"active1":true,"active2":true});
{ "acknowledged" : true, "insertedId" : ObjectId("5e480f501627c0c63e7dbaa8") }
> db.demo266.insertOne({"active1":false,"active2":false});
{ "acknowledged" : true, "insertedId" : ObjectId("5e480f561627c0c63e7dbaa9") }
> db.demo266.insertOne({"active1":false,"active2":true});
{ "acknowledged" : true, "insertedId" : ObjectId("5e480f701627c0c63e7dbaaa") }
find() মেথড দিয়ে সব ডকুমেন্ট দেখান:
> db.demo266.find();
আউটপুট:
{ "_id" : ObjectId("5e480f4b1627c0c63e7dbaa7"), "active1" : true, "active2" : false }
{ "_id" : ObjectId("5e480f501627c0c63e7dbaa8"), "active1" : true, "active2" : true }
{ "_id" : ObjectId("5e480f561627c0c63e7dbaa9"), "active1" : false, "active2" : false }
{ "_id" : ObjectId("5e480f701627c0c63e7dbaaa"), "active1" : false, "active2" : true }
$or সাথে $ne অপারেটর ব্যবহার করার কোয়েরি (NAND লজিক):
> db.demo266.find({$or:[{"active1":{"$ne":true}},{"active2":{"$ne":true}}]});
ফলাফল (যেখানে active1 এবং active2 উভয় true নয়):
{ "_id" : ObjectId("5e480f4b1627c0c63e7dbaa7"), "active1" : true, "active2" : false }
{ "_id" : ObjectId("5e480f561627c0c63e7dbaa9"), "active1" : false, "active2" : false }
{ "_id" : ObjectId("5e480f701627c0c63e7dbaaa"), "active1" : false, "active2" : true }