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

ฉันสามารถพิมพ์แต่ละองค์ประกอบของอาร์เรย์โดยการวนซ้ำค่าทั้งหมด แต่ไม่สามารถรับองค์ประกอบเฉพาะใน MongoDB


ในการดึงข้อมูลองค์ประกอบเฉพาะ ให้วนซ้ำด้วย forEach() ให้เราสร้างคอลเลกชันที่มีเอกสาร -

> db.demo742.insertOne({ "userDetails":[ { "userName":"Robert", "CountryName":"UK" }, { "userName":"David", "CountryName":"AUS" } ]} );{ "รับทราบ" :จริง "insertedId" :ObjectId("5ead790b57bb72a10bcf0677")}

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

> db.demo742.find().pretty();

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

{ "_id" :ObjectId("5ead790b57bb72a10bcf0677"), "userDetails" :[ { "userName" :"Robert", "CountryName" :"UK" }, { "userName" :"David", "CountryName" :"AUS" } ]}

ต่อไปนี้เป็นแบบสอบถามเพื่อรับองค์ประกอบจากอาร์เรย์ -

<ก่อนหน้า>> var ListOfCountryName={};> db.demo742.find({}).forEach(function(doc) {... doc.userDetails.forEach(function (d){... ListOfCountryName[d.CountryName] ] =d.CountryName;... });... }... )> printjson(ListOfCountryName);

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

{ "UK" :"UK", "AUS" :"AUS" }