คุณสามารถใช้เครื่องหมายจุดเพื่อรับค่าที่ซ้อนกัน ให้เราสร้างคอลเลกชันที่มีเอกสารก่อน
> db.nestedQueryDemo.insertOne( ... { ... ... "EmployeeName" : "John", ... "EmployeeDetails" : ... { ... ... "_id":"EMP-101", ... "EmployeeAge":23, ... "EmployeeCompanyName":"IBM" ... ... } ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5c9ea31dd628fa4220163b69") } > db.nestedQueryDemo.insertOne( ... { ... ... "EmployeeName" : "Carol", ... "EmployeeDetails" : ... { ... ... "_id":"EMP-110", ... "EmployeeAge":29, ... "EmployeeCompanyName":"Amazon" ... ... } ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5c9ea36bd628fa4220163b6a") }
ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find()
> db.nestedQueryDemo.find().pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้
{ "_id" : ObjectId("5c9ea31dd628fa4220163b69"), "EmployeeName" : "John", "EmployeeDetails" : { "_id" : "EMP-101", "EmployeeAge" : 23, "EmployeeCompanyName" : "IBM" } } { "_id" : ObjectId("5c9ea36bd628fa4220163b6a"), "EmployeeName" : "Carol", "EmployeeDetails" : { "_id" : "EMP-110", "EmployeeAge" : 29, "EmployeeCompanyName" : "Amazon" } }
ต่อไปนี้เป็นแบบสอบถามสำหรับแบบสอบถามค่าซ้อน MongoDB
> db.nestedQueryDemo.find({"EmployeeDetails._id":"EMP-110"}).pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้
{ "_id" : ObjectId("5c9ea36bd628fa4220163b6a"), "EmployeeName" : "Carol", "EmployeeDetails" : { "_id" : "EMP-110", "EmployeeAge" : 29, "EmployeeCompanyName" : "Amazon" } }