หากต้องการลบวัตถุในคอลเล็กชันย่อย ให้ใช้ $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" } ] } ] } ต่อไปนี้เป็นแบบสอบถามเพื่อลบวัตถุในคอลเลกชันย่อยใน MongoDB -
> db.demo715.update(
... {"details.id":'101'},
... { $pull: { 'details.$.Information':{studentid:'102',"Name":"Bob"} } }
... );
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -
> db.demo715.find();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : 1, "details" : [ { "id" : "101", "Information" : [ { "studentid" : "103", "Name" : "Chris" } ] } ] }