ใช้เมธอด remove() พร้อม Query Object ที่มีหลายเงื่อนไข (AND logic) เพื่อลบเอกสารที่ตรงกับทุกเงื่อนไขที่ระบุ
สร้างคอลเลกชันและข้อมูลตัวอย่าง
> db.deleteDataDemo.insertOne({_id:1,"Name":"Larry"});
{ "acknowledged": true, "insertedId": 1 }
> db.deleteDataDemo.insertOne({_id:2,"Name":"Chris"});
{ "acknowledged": true, "insertedId": 2 }
> db.deleteDataDemo.insertOne({_id:3,"Name":"Robert"});
{ "acknowledged": true, "insertedId": 3 }
> db.deleteDataDemo.insertOne({_id:4,"Name":"David"});
{ "acknowledged": true, "insertedId": 4 }
> db.deleteDataDemo.insertOne({_id:5,"Name":"Carol"});
{ "acknowledged": true, "insertedId": 5 }
> db.deleteDataDemo.insertOne({_id:6,"Name":"Sam"});
{ "acknowledged": true, "insertedId": 6 }
แสดงข้อมูลทั้งหมด
> db.deleteDataDemo.find().pretty();
ผลลัพธ์:
{"_id": 1, "Name": "Larry"}
{"_id": 2, "Name": "Chris"}
{"_id": 3, "Name": "Robert"}
{"_id": 4, "Name": "David"}
{"_id": 5, "Name": "Carol"}
{"_id": 6, "Name": "Sam"}
คำสั่งลบด้วยหลายเงื่อนไข
ลบเอกสารที่ _id = 4 และ Name = "David" พร้อมกัน:
> db.deleteDataDemo.remove({'_id': 4, 'Name': "David"});
WriteResult({ "nRemoved": 1 })
ตรวจสอบผลลัพธ์
> db.deleteDataDemo.find().pretty();
เอกสาร _id:4 ถูกลบออกแล้ว:
{"_id": 1, "Name": "Larry"}
{"_id": 2, "Name": "Chris"}
{"_id": 3, "Name": "Robert"}
{"_id": 5, "Name": "Carol"}
{"_id": 6, "Name": "Sam"}
หมายเหตุสำคัญ
- Query Object
{'_id': 4, 'Name': "David"}ทำงานแบบ AND ทุกฟิลด์ต้องตรงทั้งหมด remove()ล้าสมัย (deprecated) แนะนำให้ใช้deleteOne()หรือdeleteMany()แทน- รูปแบบใหม่:
db.deleteDataDemo.deleteOne({_id: 4, Name: "David"}) - ใช้
deleteMany()หากต้องการลบหลายเอกสารที่ตรงเงื่อนไข