หากต้องการลบระเบียนเฉพาะ ให้ใช้ตัวดำเนินการ $pull ให้เราสร้างคอลเลกชันที่มีเอกสารก่อน -
> dbdeletingSpecificRecordDemoinsertOne( { "StudentDetails": [ { "StudentName": "John", "StudentSubjectDetails": [ { "Subject": "MongoDB", "Marks":45 }, { "Subject": "MySQL", "Marks":67 } ] } ] } ); { "acknowledged" : true, "insertedId" : ObjectId("5cf2210ab64a577be5a2bc06") }
ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find() -
> dbdeletingSpecificRecordDemofind()pretty();
นี้จะผลิตเอกสารต่อไปนี้ -
{ "_id" : ObjectId("5cf2210ab64a577be5a2bc06"), "StudentDetails" : [ { "StudentName" : "John", "StudentSubjectDetails" : [ { "Subject" : "MongoDB", "Marks" : 45 }, { "Subject" : "MySQL", "Marks" : 67 } ] } ] }
นี่คือแบบสอบถามเพื่อลบบันทึกเฉพาะจากอาร์เรย์ที่ซ้อนกันภายในอาร์เรย์อื่น -
> dbdeletingSpecificRecordDemoupdate({"_id": ObjectId("5cf2210ab64a577be5a2bc06"), "StudentDetailsStudentName" : "John"}, { "$pull": {"StudentDetails$StudentSubjectDetails" : { "Marks":45 }} }, multi=true ); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
ให้เราตรวจสอบเอกสารอีกครั้ง -
> dbdeletingSpecificRecordDemofind()pretty();
นี้จะผลิตเอกสารต่อไปนี้ -
{ "_id" : ObjectId("5cf2210ab64a577be5a2bc06"), "StudentDetails" : [ { "StudentName" : "John", "StudentSubjectDetails" : [ { "Subject" : "MySQL", "Marks" : 67 } ] } ] }