ใช้ตัวดำเนินการ $pull ร่วมกับ update() เพื่อลบองค์ประกอบเฉพาะออกจากอาร์เรย์ เริ่มต้นด้วยการสร้างคอลเลกชันตัวอย่าง:
> db.removingAnArrayElementDemo.insertOne({"UserMessage":["Hi","Hello","Bye"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cef97bdef71edecf6a1f6a4") }
แสดงเอกสาร:
> db.removingAnArrayElementDemo.find().pretty();
{ "_id" : ObjectId("5cef97bdef71edecf6a1f6a4"), "UserMessage" : [ "Hi", "Hello", "Bye" ] }
คิวรี่ลบ "Hello" ออกจากอาร์เรย์ UserMessage:
> db.removingAnArrayElementDemo.update(
{_id:ObjectId("5cef97bdef71edecf6a1f6a4")},
{ "$pull": { "UserMessage": "Hello" } }
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
ตรวจสอบเอกสารอีกครั้ง:
> db.removingAnArrayElementDemo.find().pretty();
{ "_id" : ObjectId("5cef97bdef71edecf6a1f6a4"), "UserMessage" : [ "Hi", "Bye" ] }
สรุป: $pull ลบ ทุกค่า ที่ตรงกับเงื่อนไขในอาร์เรย์ หากมีค่าซ้ำกันหลายค่า จะถูกลบทั้งหมด