ใช้ operator $ne (Not Equal) เพื่อกรองเอกสารที่มีค่า boolean field เป็น false
รูปแบบคำสั่ง
db.collectionName.find({ "booleanField": { $ne: true } });
หรือระบุเฉพาะค่า false โดยตรง:
db.collectionName.find({ "booleanField": false });
ตัวอย่างเต็มรูปแบบ
1. สร้างข้อมูลตัวอย่าง
> db.translateDefinitionDemo.insertOne({"_id":10,"StudentName":"Larry","isEnable":true});
> db.translateDefinitionDemo.insertOne({"_id":20,"StudentName":"Chris","isEnable":false});
> db.translateDefinitionDemo.insertOne({"_id":30,"StudentName":"Robert","isEnable":true});
> db.translateDefinitionDemo.insertOne({"_id":40,"StudentName":"Sam","isEnable":false});
> db.translateDefinitionDemo.insertOne({"_id":50,"StudentName":"Mike","isEnable":true});
2. แสดงข้อมูลทั้งหมด
> db.translateDefinitionDemo.find().pretty();
{ "_id" : 10, "StudentName" : "Larry", "isEnable" : true }
{ "_id" : 20, "StudentName" : "Chris", "isEnable" : false }
{ "_id" : 30, "StudentName" : "Robert", "isEnable" : true }
{ "_id" : 40, "StudentName" : "Sam", "isEnable" : false }
{ "_id" : 50, "StudentName" : "Mike", "isEnable" : true }
3. ค้นหาเฉพาะค่า FALSE
> db.translateDefinitionDemo.find({
"_id" : { "$in" : [10, 20, 30, 40, 50] },
"isEnable" : { "$ne" : true }
}).pretty();
{ "_id" : 20, "StudentName" : "Chris", "isEnable" : false }
{ "_id" : 40, "StudentName" : "Sam", "isEnable" : false }
วิธีที่ง่ายกว่า
> db.translateDefinitionDemo.find({ "isEnable": false }).pretty();
ให้ผลลัพธ์เหมือนกัน แต่เขียนสั้นกว่าและอ่านง่ายกว่า
สรุป
- ใช้
{ field: false }สำหรับค้นหาค่า false โดยตรง (แนะนำ) - ใช้
{ field: { $ne: true } }เมื่อต้องการ exclude true (รวม null ด้วย) $neหมายถึง "Not Equal"