คุณสามารถใช้ $ และตัวดำเนินการสำหรับสิ่งนี้ ให้เราสร้างคอลเลกชันที่มีเอกสารก่อน -
> db.twoSpecificIdsDemo.insertOne( ... { ... PlayerId:1, ... "PlayerDetails": [{ ... id: 100, ... "PlayerName":"Chris" ... },{ ... id: 101, ... "PlayerName":"Sam" ... },{ ... id: 102, ... "PlayerName":"Robert" ... },{ ... id: 103, ... "PlayerName":"Carol" ... }] ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5cd3e130edc6604c74817ce4") } > db.twoSpecificIdsDemo.insertOne( ... { ... PlayerId:1, ... "PlayerDetails": [{ ... id: 104, ... "PlayerName":"Mike" ... },{ ... id: 105, ... "PlayerName":"Bob" ... },{ ... id: 102, ... "PlayerName":"Ramit" ... },{ ... id: 106, ... "PlayerName":"David" ... }] ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5cd3e167edc6604c74817ce5") }
ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find() -
> db.twoSpecificIdsDemo.find().pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : ObjectId("5cd3e130edc6604c74817ce4"), "PlayerId" : 1, "PlayerDetails" : [ { "id" : 100, "PlayerName" : "Chris" }, { "id" : 101, "PlayerName" : "Sam" }, { "id" : 102, "PlayerName" : "Robert" }, { "id" : 103, "PlayerName" : "Carol" } ] } { "_id" : ObjectId("5cd3e167edc6604c74817ce5"), "PlayerId" : 1, "PlayerDetails" : [ { "id" : 104, "PlayerName" : "Mike" }, { "id" : 105, "PlayerName" : "Bob" }, { "id" : 102, "PlayerName" : "Ramit" }, { "id" : 106, "PlayerName" : "David" } ] }
นี่คือแบบสอบถามเพื่อค้นหาเอกสารทั้งหมดที่มีสอง id เฉพาะในอาร์เรย์ของวัตถุใน MongoDB -
> db.twoSpecificIdsDemo.find( { $and : [ { "PlayerDetails.id" : 102 }, { "PlayerDetails.id" : 103 } ] } ).pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : ObjectId("5cd3e130edc6604c74817ce4"), "PlayerId" : 1, "PlayerDetails" : [ { "id" : 100, "PlayerName" : "Chris" }, { "id" : 101, "PlayerName" : "Sam" }, { "id" : 102, "PlayerName" : "Robert" }, { "id" : 103, "PlayerName" : "Carol" } ] }