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

ลบ Field ออกจาก MongoDB Document ด้วย $unset

ใช้ 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 หรือ "")