ใช้ Dot Notation ระบุฟิลด์ภายในอาร์เรย์ในเงื่อนไข find() เพื่อค้นหาเอกสารที่อาร์เรย์มีค่าตรงตามที่ต้องการ
ตัวอย่างข้อมูลทดสอบ
> db.demo38.insertOne({"ClientDetails":[{"ClientId":101,"ClientName":"Chris"}]});
> db.demo38.insertOne({"ClientDetails":[{"ClientId":102,"ClientName":"David"}]});
> db.demo38.insertOne({"ClientDetails":[{"ClientId":103,"ClientName":"Mike"}]});
แสดงข้อมูลทั้งหมด
> db.demo38.find();
{
"_id" : ObjectId("5e176abccfb11e5c34d898d9"),
"ClientDetails" : [ {"ClientId" : 101, "ClientName" : "Chris"} ]
}
{
"_id" : ObjectId("5e176ac7cfb11e5c34d898da"),
"ClientDetails" : [ {"ClientId" : 102, "ClientName" : "David"} ]
}
{
"_id" : ObjectId("5e176ad0cfb11e5c34d898db"),
"ClientDetails" : [ {"ClientId" : 103, "ClientName" : "Mike"} ]
}
คิวรี่ค้นหา ClientName = "David"
> db.demo38.find({"ClientDetails.ClientName":"David"});
ผลลัพธ์
{
"_id" : ObjectId("5e176ac7cfb11e5c34d898da"),
"ClientDetails" : [ {"ClientId" : 102, "ClientName" : "David"} ]
}
สรุป: ระบุพาธ ClientDetails.ClientName ใน query object MongoDB จะค้นหาในอาร์เรย์ ClientDetails ว่ามีออบเจ็กต์ใดที่ ClientName = "David" หรือไม่