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

การลบออบเจกต์ในคอลเล็กชันย่อย (Child Collection) ใน MongoDB


เพื่อลบออบเจกต์ในคอลเล็กชันย่อย ให้ใช้ $pull ใน MongoDB มาสร้างคอลเล็กชันกันเถอะ

> db.demo715.insertOne({
    _id:1,
    details :
    [
        {
            'id' : '101',
            'Information' : [
                {
                    'studentid' : '102',
                    "Name":"Bob"
                },
                {
                    'studentid' : '103',
                    "Name":"Chris"
                }
            ]
        }
    ]
});
{ "acknowledged" : true, "insertedId" : 1 }

แสดงเอกสารทั้งหมดด้วยเมธอด find()

> db.demo715.find();

ผลลัพธ์ที่ได้

{ "_id" : 1, "details" : [ { "id" : "101", "Information" : [ { "studentid" : "102", "Name" : "Bob" }, { "studentid" : "103", "Name" : "Chris" } ] } ] }

คำสั่งลบออบเจกต์ในคอลเล็กชันย่อย (studentid 102, Name Bob)

> db.demo715.update(
    {"details.id":'101'},
    { $pull: { 'details.$.Information':{studentid:'102',"Name":"Bob"} } }
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

แสดงเอกสารทั้งหมดหลังลบ

> db.demo715.find();

ผลลัพธ์ที่ได้

{ "_id" : 1, "details" : [ { "id" : "101", "Information" : [ { "studentid" : "103", "Name" : "Chris" } ] } ] }