ใช้ update() ใน MongoDB เพื่ออัปเดตวัตถุอาร์เรย์ ต้องใช้เครื่องหมายจุดด้วย ให้เราสร้างคอลเลกชันที่มีเอกสาร -
> db.demo489.insertOne(
... {
...
...
... details : [{
... id : 101,
... "Info1" : {
... "StudentName" : "Chris"
... },
... "Info2" : {
... "TeacherName" : "David"
... }
... },
... {
... id : 102,
... "Info1" : {
... "StudentName" : "Carol"
... },
... "Info2" : {
... "TeacherName" : "Mike"
... }
... }
...
... ]
... }
... );
{
"acknowledged" : true,
"insertedId" : ObjectId("5e8356e0b0f3fa88e22790ba")
} แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -
> db.demo489.find();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : ObjectId("5e8356e0b0f3fa88e22790ba"), "details" : [ { "id" : 101, "Info1" : {
"StudentName" : "Chris" }, "Info2" : { "TeacherName" : "David" } }, { "id" : 102, "Info1" : {
"StudentName" : "Carol" }, "Info2" : { "TeacherName" : "Mike" } } ] } ต่อไปนี้เป็นแบบสอบถามเพื่ออัปเดตวัตถุอาร์เรย์ -
> db.demo489.update({"details.id":102},
... {$set: {"details.$.Info1.StudentName":"Robert",
... "details.$.Info2.TeacherName":"John",
... "details.$.CountryName" : "US"
...
... }
... })
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -
> db.demo489.find().pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{
"_id" : ObjectId("5e8356e0b0f3fa88e22790ba"),
"details" : [
{
"id" : 101,
"Info1" : {
"StudentName" : "Chris"
},
"Info2" : {
"TeacherName" : "David"
}
},
{
"id" : 102,
"Info1" : {
"StudentName" : "Robert"
},
"Info2" : {
"TeacherName" : "John"
},
"CountryName" : "US"
}
]
}