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

ลบองค์ประกอบจากอาร์เรย์ที่เป็น Sub-property ใน MongoDB

ใช้ $pull ร่วม Dot Notation เพื่อลบองค์ประกอบในอาร์เรย์ที่ซ้อนอยู่ในออบเจ็กต์ (Sub-property)

ตัวอย่างข้อมูลทดสอบ

> db.demo388.insertOne({
    _id: '101',
    userDetails: {
        isMarried: false,
        userInfo: [{Name:"Chris", Age:21}]
    }
});

แสดงข้อมูลก่อน

> db.demo388.find();
{
    "_id" : "101",
    "userDetails" : {
        "isMarried" : false,
        "userInfo" : [ {"Name" : "Chris", "Age" : 21} ]
    }
}

คำสั่งลบ userInfo ที่ Name = "Chris"

> db.demo388.update(
    {"_id": "101"},
    {"$pull": {"userDetails.userInfo": {"Name":"Chris"}}}
)
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

ผลลัพธ์ (userInfo ว่าง)

> db.demo388.find();
{
    "_id" : "101",
    "userDetails" : { "isMarried" : false, "userInfo" : [] }
}

คำอธิบาย: $pull ลบองค์ประกอบออกจากอาร์เรย์ที่ตรงกับเงื่อนไข รองรับ Dot Notation เข้าถึงอาร์เรย์ซ้อน (userDetails.userInfo) ได้โดยตรง