ใช้ Operator $unset เพื่อลบ Field ออกจาก Document อย่างสมบูรณ์
ไวยากรณ์
db.yourCollectionName.update(
{},
{$unset: {yourFieldName: 1}},
false, true // multi: true
);
สร้างข้อมูลตัวอย่าง (3 Documents)
> db.removeFieldCompletlyDemo.insertOne({"StudentName":"Larry","StudentFavouriteSubject":["Java","C","C++","Python"]});
> db.removeFieldCompletlyDemo.insertOne({"StudentName":"Mike","StudentFavouriteSubject":["Javascript","HTML5","CSS3"]});
>> db.removeFieldCompletlyDemo.insertOne({"StudentName":"Sam","StudentFavouriteSubject":["MongoDB","MySQL","SQL Server"]});
แสดงเอกสารก่อนลบ
> db.removeFieldCompletlyDemo.find().pretty();
ลบ Field "StudentFavouriteSubject" จากทุก Document
> db.removeFieldCompletlyDemo.update(
{},
{$unset: {StudentFavouriteSubject: 1}},
false, true
);
WriteResult({ "nMatched" : 3, "nUpserted" : 0, "nModified" : 3 })
ตรวจสอบหลังลบ
> db.removeFieldCompletlyDemo.find().pretty();
{ "_id" : ObjectId("5c6ef55a6fd07954a48906a3"), "StudentName" : "Larry" }
{ "_id" : ObjectId("5c6ef57b6fd07954a48906a4"), "StudentName" : "Mike" }
{ "_id" : ObjectId("5c6ef59c6fd07954a48906a5"), "StudentName" : "Sam" }
Field StudentFavouriteSubject ถูกลบออกจากทุก Document แล้ว เหลือแค่ _id และ StudentName
หมายเหตุ: ใช้ updateMany({}, {$unset: {field: ""}}) ใน MongoDB เวอร์ชันใหม่ ค่าของ field ใน $unset ไม่สำคัญ (มักใช้ 1 หรือ "")