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

ลบข้อมูลใน MongoDB ด้วยหลายเงื่อนไข (Multiple Conditions)

ใช้เมธอด 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() หากต้องการลบหลายเอกสารที่ตรงเงื่อนไข