Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

ดึงค่าจากอาร์เรย์ด้วย find() ใน MongoDB

ใช้ 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" หรือไม่