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

การอัปเดตค่าเฉพาะฟิลด์ในเอกสาร MongoDB ด้วย $set

อัปเดตค่าเฉพาะฟิลด์ใน MongoDB โดยใช้ update() และ $set

บทความนี้สาธิตวิธีการอัปเดตค่าเฉพาะฟิลด์ที่ต้องการในเอกสาร MongoDB โดยใช้เมธอด update() ร่วมกับออปเจอเตอร์ $set ซึ่งจะเปลี่ยนแปลงเฉพาะฟิลด์ที่ระบุเท่านั้น

ขั้นตอนที่ 1: สร้าง Collection และเพิ่มข้อมูลตัวอย่าง

สร้าง collection ชื่อ demo201 และเพิ่มเอกสาร 3 รายการ

> db.demo201.insertOne({"ClientName":"Chris Brown","ClientAge":26});
{ "acknowledged": true, "insertedId": ObjectId("5e3c39ca03d395bdc21346e5") }

> db.demo201.insertOne({"ClientName":"David Miller","ClientAge":35});
{ "acknowledged": true, "insertedId": ObjectId("5e3c39d403d395bdc21346e6") }

> db.demo201.insertOne({"ClientName":"Carol Taylor","ClientAge":28});
{ "acknowledged": true, "insertedId": ObjectId("5e3c39e603d395bdc21346e7") }

ขั้นตอนที่ 2: แสดงข้อมูลทั้งหมด

> db.demo201.find();

ผลลัพธ์:

{ "_id": ObjectId("5e3c39ca03d395bdc21346e5"), "ClientName": "Chris Brown", "ClientAge": 26 }
{ "_id": ObjectId("5e3c39d403d395bdc21346e6"), "ClientName": "David Miller", "ClientAge": 35 }
{ "_id": ObjectId("5e3c39e603d395bdc21346e7"), "ClientName": "Carol Taylor", "ClientAge": 28 }

ขั้นตอนที่ 3: อัปเดตค่าเฉพาะฟิลด์ ClientName โดยใช้ $set

อัปเดตเอกสารที่มี ClientAge: 35 ให้เปลี่ยน ClientName เป็น "John Doe" โดยใช้ {multi: true} เพื่ออัปเดตทุกเอกสารที่ตรงเงื่อนไข (แม้ในที่นี้จะมีเพียง 1 รายการ)

> db.demo201.update(
    {"ClientAge": 35},
    {$set: {"ClientName": "John Doe"}},
    {multi: true}
);
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })

ขั้นตอนที่ 4: ตรวจสอบผลลัพธ์หลังอัปเดต

> db.demo201.find();

ผลลัพธ์:

{ "_id": ObjectId("5e3c39ca03d395bdc21346e5"), "ClientName": "Chris Brown", "ClientAge": 26 }
{ "_id": ObjectId("5e3c39d403d395bdc21346e6"), "ClientName": "John Doe", "ClientAge": 35 }
{ "_id": ObjectId("5e3c39e603d395bdc21346e7"), "ClientName": "Carol Taylor", "ClientAge": 28 }

สรุป: การใช้ $set ภายใน update() ช่วยให้สามารถแก้ไขเฉพาะฟิลด์ที่ต้องการได้อย่างปลอดภัย โดยไม่กระทบฟิลด์อื่นๆ ในเอกสารเดียวกัน