การเปลี่ยนแปลงค่า _id โดยอ้อม
ไม่สามารถอัปเดตฟิลด์ _id โดยตรงได้ ต้องใช้วิธีการคัดลอกเอกสาร แล้วเปลี่ยนค่า _id และบันทึกใหม่ พร้อมลบเอกสารเดิม
ขั้นตอนการทำงาน
- ค้นหาเอกสาร:
var myDocument = db.updatingIdFieldDemo.findOne({StudentName:"Chris"}) - เปลี่ยนค่า _id:
myDocument._id = 101 - บันทึกเอกสารใหม่:
db.updatingIdFieldDemo.save(myDocument) - ลบเอกสารเดิม:
db.updatingIdFieldDemo.remove({_id:ObjectId("...")})
ผลลัพธ์: ฟิลด์ _id เปลี่ยนจาก ObjectId เป็นค่าที่กำหนด (101)