คุณต้องใช้การแทรก () สำหรับสิ่งนี้ เมื่อใดก็ตามที่คุณแทรกค่า _id ที่กำหนดเอง และเอกสารมีอยู่แล้วโดยมีค่า _id ที่กำหนดเอง จะมองเห็นข้อผิดพลาด
ให้เราสร้างคอลเลกชันที่มีเอกสารก่อน ภายใต้สิ่งนี้ เราพยายามเพิ่มเอกสารเดิมอีกครั้ง และทำให้เกิดข้อผิดพลาด
> db.customIdDemo.insert({"_id":1,"StudentName":"John"});WriteResult({ "nInserted" :1 })> db.customIdDemo.insert({"_id":1 ,"StudentName":"Carol"});WriteResult({ "nInserted" :0, "writeError" :{ "code" :11000, "errmsg" :"E11000 การรวบรวมข้อผิดพลาดของคีย์ที่ซ้ำกัน:admin.customIdDemo ดัชนี:_id_ คีย์ซ้ำซ้อน :{ :1.0 }" }})> db.customIdDemo.insert({"_id":2,"StudentName":"Carol"});WriteResult({ "nInserted" :1 })> db.customIdDemo.insert( {"_id":2,"StudentName":"Carol"});WriteResult({ "nInserted" :0, "writeError" :{ "code" :11000, "errmsg" :"E11000 การรวบรวมข้อผิดพลาดของคีย์ที่ซ้ำกัน:admin. ดัชนี customIdDemo:_id_ คีย์ซ้ำ:{ :2.0 }" }})> db.customIdDemo.insert({"_id":3,"StudentName":"Chris"});WriteResult({ "nInserted" :1 })
ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find()
> db.customIdDemo.find().pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้
{ "_id" :1, "StudentName" :"John" }{ "_id" :2, "StudentName" :"Carol" }{ "_id" :3, "StudentName" :"Chris" }ก่อน>