เนื่องจาก น๊านๆนานๆ จะได้มีการ update data แบบที่มี data เป็น array สักที ก็จะลืมคำสั่งในการ update หน่อยๆ วันนี้เลยเขียนเอาไว้ให้ตัวเองนึกได้สักหน่อย
//ข้อมูล data ที่อยู่ใน mongoDB collection name : report
{
"_id" : ObjectId("5cfe5b2a4bb30927c792f70c"),
"student_id" : "573021104-4",
"account_name" : "Nareenart",
"transcript" : [
{
"thai" : "A",
"eng" : "B+",
"match" : "F"
}
]
}
ข้อมูลเดิมที่มีอยู่ Nareenart นั้น ติด F วิชาคณิตศาสตร์ แต่แล้ว Nareenart ได้ทำการแก้เกรดของตัวเองแล้วได้ C+
จะทำการใส่คำสั่ง update เข้าไปแบบนี้ เพื่อแก้เกรดจาก F ให้เป็น C+
db.getCollection('report').updateOne({student_id: "573021104-4", "transcript.match" : "F" }, {
$set: {
"transcript.$.match": "C+"
}
})
student_id เป็น key ในการหาค่าของมัน
“transcript.macth” : “F” คือค่าข้อมูลเดิมที่เราต้องการจะ update
$set คำสั่ง update operator ตามด้วย “transcript.$.match” : “C+” ค่าที่ update ใหม่เข้าไป
>> $ << เป็น syntax ของมันที่เอาไว้ใช้กับ array
ซึ่งถ้า update สำเร็จจะขึ้นข้อมูลแบบนี้
matchedCount = 1.0, modifiedCount = 1.0 ถ้ามัน = 0 แสดงว่า query หาไม่เจอนะจ๊ะ และมันจะไม่ update ค่าให้เราด้วย