คุณสามารถใช้ตัวดำเนินการ $set สำหรับสิ่งนี้ ไวยากรณ์มีดังนี้ −
db.yourCollectionName.update({}, { $set : {"yourFieldName": [] }} , {multi:true} );
เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างคอลเลกชันด้วยเอกสาร แบบสอบถามเพื่อสร้างคอลเลกชันที่มีเอกสารมีดังนี้ -
> db.deleteAllElementsInArrayDemo.insertOne({"InstructorName":"Larry","InstructorTechnicalSubject":["Java","MongoDB"]}); { "acknowledged" : true, "insertedId" : ObjectId("5c8fb971d3c9d04998abf00e") } > db.deleteAllElementsInArrayDemo.insertOne({"InstructorName":"Mike","InstructorTechnicalSubject":["C","C++","Python"]}); { "acknowledged" : true, "insertedId" : ObjectId("5c8fb98ad3c9d04998abf00f") }
แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้เมธอด find() แบบสอบถามมีดังนี้ −
> db.deleteAllElementsInArrayDemo.find().pretty();
ต่อไปนี้เป็นผลลัพธ์ -
{ "_id" : ObjectId("5c8fb971d3c9d04998abf00e"), "InstructorName" : "Larry", "InstructorTechnicalSubject" : [ "Java", "MongoDB" ] } { "_id" : ObjectId("5c8fb98ad3c9d04998abf00f"), "InstructorName" : "Mike", "InstructorTechnicalSubject" : [ "C", "C++", "Python" ] }
นี่คือแบบสอบถามเพื่อลบองค์ประกอบทั้งหมดในฟิลด์อาร์เรย์ -
> db.deleteAllElementsInArrayDemo.update({}, { $set : {"InstructorTechnicalSubject": [] }} , {multi:true} ); WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })
ให้เราตรวจสอบเอกสารทั้งหมดจากคอลเล็กชันโดยใช้ find() แบบสอบถามมีดังนี้ −
> db.deleteAllElementsInArrayDemo.find().pretty();
ต่อไปนี้เป็นผลลัพธ์ เราได้ลบองค์ประกอบทั้งหมดของฟิลด์อาร์เรย์ "InstructorTechnicalSubject":
{ "_id" : ObjectId("5c8fb971d3c9d04998abf00e"), "InstructorName" : "Larry", "InstructorTechnicalSubject" : [ ] } { "_id" : ObjectId("5c8fb98ad3c9d04998abf00f"), "InstructorName" : "Mike", "InstructorTechnicalSubject" : [ ] }