ใช้ $unset เพื่อลบฟิลด์หรือ embedded object ออกจากเอกสาร สร้างคอลเลกชันตัวอย่าง:
> db.demo348.insertOne({
"details": { "studentDetails": { "StudentName": "Robert" } }
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e553556f8647eb59e5620b2") }
> db.demo348.insertOne({
"details": { "studentDetails": { "StudentName": "Mike" } }
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e553563f8647eb59e5620b3") }
แสดงข้อมูล:
> db.demo348.find();
ลบ object studentDetails ออกจากทุกเอกสาร (multi: true):
> db.demo348.update({},{$unset: {"details.studentDetails": ""}},{multi: true});
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })
ตรวจสอบผลลัพธ์ (details กลายเป็น empty object):
> db.demo348.find();
ผลลัพธ์:
{ "_id" : ObjectId("5e553556f8647eb59e5620b2"), "details" : { } }
{ "_id" : ObjectId("5e553563f8647eb59e5620b3"), "details" : { } }
รายละเอียด $unset
- รูปแบบ:
{$unset: {"fieldName": ""}}ค่าว่างเป็น placeholder - ลบฟิลด์ top-level:
{$unset: {"field": ""}} - ลบ nested field:
{$unset: {"parent.child": ""}} - ลบในอาร์เรย์:
{$unset: {"arrayField.0.field": ""}}(ลบฟิลด์ในสมาชิก index 0) multi: trueอัปเดตทุกเอกสารที่ match (default false ใน update())- MongoDB ใหม่: ใช้
updateMany({}, {$unset: {...}})