Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

MongoDB: อัปเดตเอกสารเฉพาะในอาร์เรย์ด้วย $set และ Positional Operator $


สร้างคอลเลกชันตัวอย่าง

> db.demo135.insertOne({"Details":[{"EmployeeId":101,"EmployeeName":"Chris","EmployeeSalary":45000},{"EmployeeId":102,"EmployeeName":"Chris","EmployeeSalary":45000}]});
{ "acknowledged": true, "insertedId": ObjectId("5e31a5ddfdf09dd6d085399c") }

แสดงข้อมูลก่อนอัปเดต

> db.demo135.find().pretty();
{ "_id": ObjectId("5e31a5ddfdf09dd6d085399c"), "Details": [ { "EmployeeId": 101, "EmployeeName": "Chris", "EmployeeSalary": 45000 }, { "EmployeeId": 102, "EmployeeName": "Chris", "EmployeeSalary": 45000 } ] }

คิวรี Update: ระบุ Details.EmployeeId=102 แล้ว $set ผ่าน Positional $

> db.demo135.update(
  { "Details.EmployeeId": 102 },
  { $set: { "Details.$.EmployeeName": "John Doe" } }
);
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })

ผลลัพธ์: EmployeeId 102 เปลี่ยนชื่อเป็น John Doe

> db.demo135.find().pretty();
{ "_id": ObjectId("5e31a5ddfdf09dd6d085399c"), "Details": [ { "EmployeeId": 101, "EmployeeName": "Chris", "EmployeeSalary": 45000 }, { "EmployeeId": 102, "EmployeeName": "John Doe", "EmployeeSalary": 45000 } ] }