เพื่อลบค่า ObjectId ออกจากอาร์เรย์ ให้ใช้ตัวดำเนินการ $pull ร่วมกับ $in ใน MongoDB
สร้างคอลเลกชันพร้อมเอกสารที่มีอาร์เรย์ arrayOfObjectsId เก็บ ObjectId:
> db.demo258.insertOne({"arrayOfObjectsId":[ ObjectId("5e47a5e81627c0c63e7dba92"),ObjectId("5e47a5e51627c0c63e7dba91")]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e47a8211627c0c63e7dba97") }
แสดงเอกสารทั้งหมด:
> db.demo258.find();
ผลลัพธ์ - อาร์เรย์มี ObjectId 2 ค่า:
คำสั่งอัปเดตใช้ $pull กับ $in เพื่อลบ ObjectId เฉพาะ "5e47a5e81627c0c63e7dba92":
> db.demo258.update( { }, { $pull: { arrayOfObjectsId: { $in: [ ObjectId("5e47a5e81627c0c63e7dba92") ] } } } ); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })แสดงเอกสารอีกครั้งหลังอัปเดต:
> db.demo258.find();ผลลัพธ์ - เหลือ ObjectId เพียงค่าเดียว: