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

ลบ Element ออกจาก Array ใน MongoDB ด้วย $pull และ $in

ใช้ $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 ที่สอง