โครงสร้างอาร์เรย์ซ้อนอาร์เรย์
MongoDB รองรับการเก็บอาร์เรย์ภายในอาร์เรย์ (Nested Array) ได้ไม่จำกัดระดับ
ตัวอย่าง: ข้อมูลนักเรียน โปรเจกต์ เทคโนโลยี
สร้างคอลเลกชัน doubleNestedArrayDemo:
> db.doubleNestedArrayDemo.insertOne({
"StudentId": "1000",
"StudentName": "Larry",
"StudentDetails": [
{
"ProjectName": "Online Banking",
"ProjectDetails": [
{"TechnologyUsed": "Java"},
{"TechnologyUsed": "MySQL in Backend"}
]
}
]
});
> db.doubleNestedArrayDemo.insertOne({
"StudentId": "1001",
"StudentName": "Robert",
"StudentDetails": [
{
"ProjectName": "Student Web Tracker",
"ProjectDetails": [
{"TechnologyUsed": "Django Framework"},
{"TechnologyUsed": "MongoDB in Backend"}
]
}
]
});
แสดงข้อมูล
> db.doubleNestedArrayDemo.find().pretty()
ผลลัพธ์:
{
"_id" : ObjectId("..."),
"StudentId" : "1000",
"StudentName" : "Larry",
"StudentDetails" : [
{
"ProjectName" : "Online Banking",
"ProjectDetails" : [
{"TechnologyUsed" : "Java"},
{"TechnologyUsed" : "MySQL in Backend"}
]
}
]
}
{
"_id" : ObjectId("..."),
"StudentId" : "1001",
"StudentName" : "Robert",
"StudentDetails" : [
{
"ProjectName" : "Student Web Tracker",
"ProjectDetails" : [
{"TechnologyUsed" : "Django Framework"},
{"TechnologyUsed" : "MongoDB in Backend"}
]
}
]
}
โครงสร้างนี้เหมาะกับข้อมูล階層เช่น: ใบสั่งซื้อ -> รายการสินค้า -> ตัวเลือกสินค้า