ไม่สามารถอัปเดตค่าฟิลด์โดยใช้ตัวมันเองได้โดยตรง ต้องใช้ $set แทน
สร้างคอลเลกชันพร้อมเอกสาร:
> db.demo256.insertOne({"Name":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e47a3e91627c0c63e7dba8b") }
> db.demo256.insertOne({"Name":"Bob"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e47a3ea1627c0c63e7dba8c") }
> db.demo256.insertOne({"Name":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e47a3eb1627c0c63e7dba8d") }
แสดงเอกสารทั้งหมด:
> db.demo256.find();
ผลลัพธ์:
คำสั่งอัปเดตใช้ $set ต่อสตริง " is a student" เข้ากับฟิลด์ Name (อัปเดตเอกสารแรกที่เจอ):
> db.demo256.update({}, {$set:{"Name":"Name" + " is a student"}}); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })แสดงเอกสารอีกครั้ง - สังเกตว่าเอกสารแรกกลายเป็น "Name is a student" (ไม่ใช่ "Chris is a student" เพราะเป็นการต่อสตริงตัวอักษร "Name" ตรงๆ):
> db.demo256.find();ผลลัพธ์: