กรณี 2 กรณีของ Field ที่เป็น Null หรือไม่มี
กรณีที่ 1: Field มีอยู่แต่เป็นค่า Null
db.yourCollectionName.count({yourFieldName: null});
กรณีที่ 2: Field ไม่มีอยู่จริง (Not Exist)
db.yourCollectionName.count({yourFieldName: {$exists: false}});
สร้างข้อมูลตัวอย่าง
> db.fieldIsNullOrNotSetDemo.insertOne({"EmployeeName":"Larry","EmployeeAge":null,"EmployeeSalary":18500});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8a995c6cea1f28b7aa07fe") }
> db.fieldIsNullOrNotSetDemo.insertOne({"EmployeeName":"Bob","EmployeeAge":21,"EmployeeSalary":23500});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8a99836cea1f28b7aa07ff") }
> db.fieldIsNullOrNotSetDemo.insertOne({"EmployeeName":"Carol","EmployeeSalary":45500});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8a999b6cea1f28b7aa0800") }
> db.fieldIsNullOrNotSetDemo.insertOne({"EmployeeName":"Mike","EmployeeAge":null,"EmployeeSalary":45500});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8a99bb6cea1f28b7aa0801") }
> db.fieldIsNullOrNotSetDemo.insertOne({"EmployeeName":"Ramit","EmployeeSalary":85500});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8a99d76cea1f28b7aa0802") }
แสดงข้อมูลทั้งหมด
> db.fieldIsNullOrNotSetDemo.find().pretty();
{ "_id" : ObjectId("5c8a995c6cea1f28b7aa07fe"), "EmployeeName" : "Larry", "EmployeeAge" : null, "EmployeeSalary" : 18500 }
{ "_id" : ObjectId("5c8a99836cea1f28b7aa07ff"), "EmployeeName" : "Bob", "EmployeeAge" : 21, "EmployeeSalary" : 23500 }
{ "_id" : ObjectId("5c8a999b6cea1f28b7aa0800"), "EmployeeName" : "Carol", "EmployeeSalary" : 45500 }
{ "_id" : ObjectId("5c8a99bb6cea1f28b7aa0801"), "EmployeeName" : "Mike", "EmployeeAge" : null, "EmployeeSalary" : 45500 }
{ "_id" : ObjectId("5c8a99d76cea1f28b7aa0802"), "EmployeeName" : "Ramit", "EmployeeSalary" : 85500 }
ผลลัพธ์การ Query
กรณีที่ 1 - Field มีอยู่และเป็น Null:
> db.fieldIsNullOrNotSetDemo.count({EmployeeAge: null});
4
นับรวม Document ที่ EmployeeAge เป็น null (Larry, Mike) และ Document ที่ไม่มี Field EmployeeAge (Carol, Ramit) รวม 4 รายการ
กรณีที่ 2 - Field ไม่มีอยู่จริง:
> db.fieldIsNullOrNotSetDemo.count({EmployeeAge: {$exists: false}});
2
นับเฉพาะ Document ที่ไม่มี Field EmployeeAge (Carol, Ramit) รวม 2 รายการ