ใช้ $pull ร่วม $in เพื่อลบหลายค่าจาก Array ได้ในคำสั่งเดียว
ไวยากรณ์
db.yourCollectionName.update(
{},
{$pull: {
yourFirstArrayName: {$in: ["yourValue"]},
yourSecondArrayName: "yourValue"
}},
{multi: true}
);
สร้างข้อมูลตัวอย่าง
> db.removeArrayElement.insertOne({
"StudentName": "Larry",
"StudentCoreSubject": ["MongoDB","MySQL","SQL Server","Java"],
"StudentFavouriteTeacher": ["John","Marry","Carol"]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5c6ec9c46fd07954a4890688") }
แสดงเอกสารก่อนลบ
> db.removeArrayElement.find().pretty();
ลบ "Java" จาก StudentCoreSubject และ "Marry" จาก StudentFavouriteTeacher
> db.removeArrayElement.update(
{},
{$pull: {
StudentCoreSubject: {$in: ["Java"]},
StudentFavouriteTeacher: "Marry"
}},
{multi: true}
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
ตรวจสอบหลังลบ
> db.removeArrayElement.find().pretty();
{
"StudentName" : "Larry",
"StudentCoreSubject" : ["MongoDB", "MySQL", "SQL Server"],
"StudentFavouriteTeacher" : ["John", "Carol"]
}
ลบสำเร็จ: Java หายจาก Array แรก, Marry หายจาก Array ที่สอง