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

ค้นหาเอกสาร MongoDB จากอาร์เรย์ย่อย?


คุณสามารถใช้เครื่องหมายจุด (.) เพื่อค้นหาเอกสารจากอาร์เรย์ย่อย ให้เราสร้างคอลเลกชันที่มีเอกสารก่อน -

> db.findDocumentDemo.insertOne(... {... "EmployeeDetails" :... {... "EmployeeAppraisalTime":...... [...... {"EmployeeDesignation":"นักพัฒนา", "เงินเดือน":45000},... {"EmployeeDesignation":"Tester", "เงินเดือน":30000},... {"EmployeeDesignation":"HR", "เงินเดือน":22000},. .. {"EmployeeDesignation":"Accountant", "Salary":18000}... ]... }... }... );{ "acknowledged" :true, "insertedId" :ObjectId("5cd2c0f7b64f4b851c3a13a8" )}> db.findDocumentDemo.insertOne(... {... "EmployeeDetails" :... {... "EmployeeAppraisalTime":...... [...... {"EmployeeDesignation":" นักพัฒนา", "เงินเดือน":105000},... {"EmployeeDesignation":"Tester", "เงินเดือน":45000},... {"EmployeeDesignation":"HR", "เงินเดือน":34000},.. . {"EmployeeDesignation":"บัญชี", "เงินเดือน":24000}... ]... }... }... );{ "รับทราบ" :จริง "insertedId" :ObjectId("5cd2c1d5b64f4b851c3a13a9")}

ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find() -

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

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

{ "_id" :ObjectId("5cd2c0f7b64f4b851c3a13a8"), "EmployeeDetails" :{ "EmployeeAppraisalTime" :[ { "EmployeeDesignation" :"Developer", "Salary" :45000 }, { "EmployeeDesignation" :"Tester" "เงินเดือน" :30000 }, { "EmployeeDesignation" :"HR", "เงินเดือน" :22000 }, { "EmployeeDesignation" :"นักบัญชี", "เงินเดือน" :18000 } ] }}{ "_id" :ObjectId("5cd2c1d5b64f134b851c3a "), "EmployeeDetails" :{ "EmployeeAppraisalTime" :[ { "EmployeeDesignation" :"Developer", "Salary" :105000 }, { "EmployeeDesignation" :"Tester", "Salary" :45000 }, { "EmployeeDesignation" :"HR", "Salary" :34000 }, { "EmployeeDesignation" :"Accountant", "Salary" :24000 } ] }} 

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

> db.findDocumentDemo.find({ 'EmployeeDetails.EmployeeAppraisalTime.EmployeeDesignation':'Developer', 'EmployeeDetails.EmployeeAppraisalTime.Salary':{ '$in':[45000,105000] } } );

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

{ "_id" :ObjectId("5cd2c0f7b64f4b851c3a13a8"), "EmployeeDetails" :{ "EmployeeAppraisalTime" :[ { "EmployeeDesignation" :"Developer", "Salary" :45000 }, { "EmployeeDesignation" :"Tester" "เงินเดือน" :30000 }, { "EmployeeDesignation" :"HR", "Salary" :22000 }, { "EmployeeDesignation" :"Accountant", "Salary" :18000 } ] } } }{ "_id" :ObjectId("5cd2c1d5b64af413a9851c3 "), "EmployeeDetails" :{ "EmployeeAppraisalTime" :[ { "EmployeeDesignation" :"Developer", "Salary" :105000 }, { "EmployeeDesignation" :"Tester", "Salary" :45000 }, { "EmployeeDesignation" :"HR", "Salary" :34000 }, { "EmployeeDesignation" :"Accountant", "Salary" :24000 } ] } }