หากต้องการล้างรายการในอาร์เรย์ที่ซ้อนกัน ให้ใช้ตัวดำเนินการ $set ให้เราสร้างคอลเลกชันก่อน ต่อไปนี้เป็นแบบสอบถามเพื่อสร้างคอลเลกชันที่มีเอกสาร
> db.clearingItemsInNestedArrayDemo.insertOne( { ... ... "StudentName" : "John", ... "StudentDetails" : [ ... { ... "ProjectName" : "Online Banking", ... "ProjectDetails" : [ ... { ... "TechnologyUsed" : "Java", ... "TeamSize":5 ... }, ... ... ] ... } ... ] ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5c9930b4330fd0aa0d2fe4ce") }
ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find()
> db.clearingItemsInNestedArrayDemo.find().pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้
{ "_id" : ObjectId("5c9930b4330fd0aa0d2fe4ce"), "StudentName" : "John", "StudentDetails" : [ { "ProjectName" : "Online Banking", "ProjectDetails" : [ { "TechnologyUsed" : "Java", "TeamSize" : 5 } ] } ] }
ต่อไปนี้เป็นแบบสอบถามเพื่อล้างรายการในอาร์เรย์ที่ซ้อนกัน
> db.clearingItemsInNestedArrayDemo.update({"StudentName": "John"}, {"$set": {"StudentDetails": []}}); Updated 1 existing record(s) in 4ms WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
ตอนนี้ตรวจสอบเอกสารจากคอลเลกชันอีกครั้งเพื่อตรวจสอบว่ารายการถูกล้างออกจากอาร์เรย์ที่ซ้อนกันหรือไม่ ต่อไปนี้เป็นแบบสอบถาม
> db.clearingItemsInNestedArrayDemo.find().pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้
{ "_id" : ObjectId("5c9930b4330fd0aa0d2fe4ce"), "StudentName" : "John", "StudentDetails" : [ ] }