เพื่ออัปเดตเฉพาะฟิลด์บางฟิลด์ ให้ใช้ตัวดำเนินการ $set ซึ่งจะเปลี่ยนเฉพาะฟิลด์ที่ระบุ ไม่กระทบฟิลด์อื่น
สร้างคอลเลกชันพร้อมเอกสาร:
> db.demo265.insertOne({"id":101,"Name":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e480d781627c0c63e7dbaa4") }
> db.demo265.insertOne({"id":102,"Name":"Bob"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e480d7d1627c0c63e7dbaa5") }
> db.demo265.insertOne({"id":103,"Name":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e480d841627c0c63e7dbaa6") }
แสดงเอกสารทั้งหมด:
> db.demo265.find();
ผลลัพธ์:
คำสั่งอัปเดตเฉพาะฟิลด์ id ของเอกสารที่ Name = "David" ให้เป็น 10004:
> db.demo265.update({Name:"David"},{$set:{id:10004}}); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })แสดงเอกสารอีกครั้ง - เฉพาะ id ของ David เปลี่ยนเป็น 10004, ฟิลด์ Name และเอกสารอื่นไม่เปลี่ยน:
> db.demo265.find();ผลลัพธ์: