คุณไม่สามารถอัปเดตฟิลด์ _id ได้โดยตรง เช่น เขียนสคริปต์เพื่ออัปเดต ให้เราสร้างคอลเลกชันที่มีเอกสารก่อน -
> db.updatingIdFieldDemo.insertOne({"StudentName":"Chris"});{ "acknowledged" :true, "insertedId" :ObjectId("5ce271bb36e8b255a5eee949")}
ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find() -
> db.updatingIdFieldDemo.find();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" :ObjectId("5ce271bb36e8b255a5eee949"), "StudentName" :"Chris" }
ต่อไปนี้เป็นแบบสอบถามเพื่ออัปเดตฟิลด์ _id ใน MongoDB -
<ก่อนหน้า>> var myDocument=db.updatingIdFieldDemo.findOne({StudentName:"Chris"});> myDocument._id =101;101> db.updatingIdFieldDemo.save(myDocument);WriteResult({ "nMatched" :0, " nUpserted" :1 "nModified" :0, "_id" :101 })> db.updatingIdFieldDemo.remove({_id:ObjectId("5ce271bb36e8b255a5eee949")});WriteResult({ "nRemoved" :1 })ให้เราตรวจสอบบันทึกอีกครั้ง -
> db.updatingIdFieldDemo.find();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ เราได้อัปเดต _id เรียบร้อยแล้ว -
{ "_id" :101, "StudentName" :"Chris" }