ในการอัปเดตเอกสารที่ซ้อนกัน ให้ใช้ $set ให้เราสร้างคอลเลกชันที่มีเอกสาร -
> db.demo315.insertOne({ _id :101,... details:[... {Name:'Chris', subjects:[{id:1001, SubjectName:"MySQL"}]}... ]... }...){ "acknowledged" :true, "insertedId" :101 }
แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -
> db.demo315.find().pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" :101, "details" :[ { "Name" :"Chris", " subjects" :[ { "id" :1001, "SubjectName" :"MySQL" } ] } ]}ก่อน>ต่อไปนี้เป็นแบบสอบถามเพื่ออัปเดตเอกสารที่ซ้อนกันใน MongoDB -
> db.demo315.update ({_id:101}, { '$set':{"details.0.subjects.1.id" :1004} })WriteResult({ "nMatched" :1, "nUpserted" " :0, "nModified" :1 })แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -
> db.demo315.find().pretty();สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" :101, "details" :[ { "Name" :"Chris", " subjects" :[ { "id" :1001, "SubjectName" :"MySQL" }, { "id" :1004 } ] } ]}