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

แบบสอบถาม MongoDB เพื่อจับคู่เอกสารที่มี _id อยู่ในอาร์เรย์เป็นส่วนหนึ่งของเอกสารย่อยหรือไม่


ให้เราสร้างคอลเลกชันที่มีเอกสาร -

> db.demo568.insertOne({ _id:101, รายละเอียด:[ {id :101 }, { id:103 } ] });{ "acknowledged" :true, "insertedId" :101 }

แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -

> db.demo568.find();

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{ "_id" :101, "details" :[ { "id" :101 }, { "id" :103 } ] }ต่อไปนี้คือแบบสอบถามเพื่อสร้างคอลเลกชันที่สอง:> db.demo569.insertOne({ _id :101 รายละเอียด:"John" }){ "acknowledged" :true, "insertedId" :101 }> db.demo569.insertOne({ _id:102, รายละเอียด:"Chris" }){ "acknowledged" :true " insertedId" :102 }> db.demo569.insertOne({ _id:103, รายละเอียด:"David" }){ "acknowledged" :true, "insertedId" :103 }

แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -

> db.demo569.find();

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{ "_id" :101, "details" :"John" }{ "_id" :102, "details" :"Chris" }{ "_id" :103, "details" :"David" } 

ต่อไปนี้เป็นแบบสอบถามเพื่อให้ตรงกับเอกสารที่มี _id อยู่ในอาร์เรย์ที่เป็นส่วนหนึ่งของเอกสารย่อย -

> db.demo569.find({ '_id':{ '$in':db.demo568.distinct('details.id', {'_id':101}) }})

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{ "_id" :101, "details" :"John" }{ "_id" :103, "details" :"David" }