เพื่อค้นหาเอกสารที่มีฟิลด์เฉพาะ ให้ใช้ตัวดำเนินการ $exists
สร้างคอลเลกชันพร้อมเอกสารที่มีอาร์เรย์ ClientDetails (บางรายการมี ClientLastName บางรายการไม่มี):
> db.demo247.insertOne({"ClientDetails":[{"ClientFirstName":"Chris","ClientAge":34}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e46b2a31627c0c63e7dba69") }
> db.demo247.insertOne({"ClientDetails":[{"ClientFirstName":"John","ClientLastName":"Smith","ClientAge":31}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e46b2be1627c0c63e7dba6a") }
> db.demo247.insertOne({"ClientDetails":[{"ClientFirstName":"David","ClientAge":33}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e46b2cd1627c0c63e7dba6b") }
> db.demo247.insertOne({"ClientDetails":[{"ClientFirstName":"David","ClientLastName":"Miller","ClientAge":31}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e46b2de1627c0c63e7dba6c") }
แสดงเอกสารทั้งหมดด้วย find().pretty():
> db.demo247.find().pretty();
ผลลัพธ์ - เอกสารที่ 1 และ 3 ไม่มี ClientLastName:
คำสั่งค้นหาเอกสารที่มีฟิลด์ ClientLastName อยู่ในอาร์เรย์ ClientDetails:
> db.demo247.find({"ClientDetails.ClientLastName":{$exists:true}});ผลลัพธ์ - ได้เฉพาะเอกสารที่มี ClientLastName (John และ David คนที่ 2):