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

เขียนแบบสอบถาม MongoDB เพื่อรับค่าที่ซ้อนกัน?


คุณสามารถใช้เครื่องหมายจุดเพื่อรับค่าที่ซ้อนกัน ให้เราสร้างคอลเลกชันที่มีเอกสารก่อน

> 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"
   }
}