การค้นหา Array ของ Objects ใน MongoDB
หากต้องการค้นหา Array ของ Objects ให้ใช้เมธอด find() ของ MongoDB เมธอด find() จะเลือกเอกสารใน Collection หรือ View และส่งคืน Cursor ไปยังเอกสารที่เลือก
ตัวอย่างข้อมูล
ลองสร้าง Collection พร้อมเอกสารดังนี้:
> db.demo484.insertOne(
... { 'id' : 1, 'details' : [ { 'Name1' : 'Chris' }, { 'Name2' : 'David' }, { 'Name3' : 'Bob' } ] }
... );
{ "acknowledged" : true, "insertedId" : ObjectId("5e82e3a4b0f3fa88e22790a1") }
> db.demo484.insertOne(
... { 'id' : 1, 'details' : [ { 'Name1' : 'Chris' }, { 'Name2' : 'Carol' }, { 'Name3' : 'Bob' } ] }
... );
{ "acknowledged" : true, "insertedId" : ObjectId("5e82e3a4b0f3fa88e22790a2") }
> db.demo484.insertOne(
... { 'id' : 1, 'details' : [ { 'Name1' : 'Chris' }, { 'Name2' : 'Carol' }, { 'Name3' : 'Mike' } ] }
... );
{ "acknowledged" : true, "insertedId" : ObjectId("5e82e3a4b0f3fa88e22790a3") }
แสดงเอกสารทั้งหมด
> db.demo484.find();
ผลลัพธ์:
{ "_id" : ObjectId("5e82e3a4b0f3fa88e22790a1"), "id" : 1, "details" : [ { "Name1" : "Chris" }, { "Name2" : "David" }, { "Name3" : "Bob" } ] }
{ "_id" : ObjectId("5e82e3a4b0f3fa88e22790a2"), "id" : 1, "details" : [ { "Name1" : "Chris" }, { "Name2" : "Carol" }, { "Name3" : "Bob" } ] }
{ "_id" : ObjectId("5e82e3a4b0f3fa88e22790a3"), "id" : 1, "details" : [ { "Name1" : "Chris" }, { "Name2" : "Carol" }, { "Name3" : "Mike" } ] }
คิวรีค้นหา Array ของ Objects
> db.demo484.find(
... {$or: [
... {'details.Name2': 'Carol', 'details.Name3': 'Mike'},
... {'details.Name2': 'Carol', 'details.Name3': 'Bob'}
... ]}
... )
ผลลัพธ์:
{ "_id" : ObjectId("5e82e3a4b0f3fa88e22790a2"), "id" : 1, "details" : [ { "Name1" : "Chris" }, { "Name2" : "Carol" }, { "Name3" : "Bob" } ] }
{ "_id" : ObjectId("5e82e3a4b0f3fa88e22790a3"), "id" : 1, "details" : [ { "Name1" : "Chris" }, { "Name2" : "Carol" }, { "Name3" : "Mike" } ] }