ตัวดำเนินการ $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});{ "รับทราบ" :จริง "insertedId" :ObjectId("5e480f561627c0c63e7dbaa9")}> db.demo266.insertOne({"active1":false,"active2":true});{ "รับทราบ" :จริง "insertedId" :ObjectId("5e480f701627c0c63e7dbaaa")}
แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -
> db.demo266.find();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" :ObjectId("5e480f4b1627c0c63e7dbaa7"), "active1" :true, "active2" :false }{ "_id" :ObjectId("5e480f501627c0c63e7dbaa8"), "active1" :true, "active2" :true, "active2" }{ "_id" :ObjectId("5e480f561627c0c63e7dbaa9"), "active1" :false, "active2" :false }{ "_id" :ObjectId("5e480f701627c0c63e7dbaaa"), "active1" :false, "active2" :true }
ต่อไปนี้เป็นแบบสอบถามที่จะใช้ $or กับ $ne โอเปอเรเตอร์ -
> db.demo266.find({$or:[{"active1":{"$ne":true}},{"active2":{"$ne":true}}]});ก่อน>สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" :ObjectId("5e480f4b1627c0c63e7dbaa7"), "active1" :true, "active2" :false }{ "_id" :ObjectId("5e480f561627c0c63e7dbaa9"), "active1" :false, "active2" เท็จ }{ "_id" :ObjectId("5e480f701627c0c63e7dbaaa"), "active1" :false, "active2" :true }