เพื่ออัปเดตเอกสารเพียงรายการเดียวในคอลเลกชัน ให้ใช้เมธอด updateOne()
สร้างคอลเลกชันพร้อมเอกสาร (มี StudentId ซ้ำกัน 2 รายการ):
> db.updateOneDemo.insertOne({"StudentId":1,"StudentFirstName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e06ed3725ddae1f53b621e8") }
> db.updateOneDemo.insertOne({"StudentId":2,"StudentFirstName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e06ed3825ddae1f53b621e9") }
> db.updateOneDemo.insertOne({"StudentId":1,"StudentFirstName":"Mike"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e06ed3825ddae1f53b621ea") }
แสดงเอกสารทั้งหมด:
> db.updateOneDemo.find();
ผลลัพธ์ - มี 3 เอกสาร StudentId=1 สองรายการ (Chris, Mike):
คำสั่ง
updateOne()โดยไม่ระบุเงื่อนไข (empty query {}) จะอัปเดตเอกสารแรกที่เจอ เปลี่ยน StudentFirstName เป็น "Robert":> db.updateOneDemo.updateOne({},{$set:{"StudentFirstName": "Robert"}}); { "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }แสดงเอกสารอีกครั้งหลังอัปเดต:
> db.updateOneDemo.find();ผลลัพธ์ - เอกสารแรก (Chris) เปลี่ยนเป็น Robert, ส่วน Mike และ David ไม่เปลี่ยน: