Google FlutterMongoDB

Node.js: วิธีกำหนด ID ของ Document ใน Mongoose ด้วยตัวเอง และข้อควรระวัง

เรื่องที่เกี่ยวข้อง - MongoDB, Mongoose, NodeJS
MongoDB for DBA coverr

ใครที่เรียนคอร์ส Mongoose for Web Developer อาจจะมีคำถามที่ว่า

เออในเมื่อ Mongoose มันกำหนด _id ให้กับ document เองแล้วเนี่ย ถ้าจู่ๆ เราจะกำหนด เจ้า document id นี้เองได้ไหม?

คำตอบคือได้ครับ แต่… แต่…​ มาดูวิธีทำกันก่อน

1. กำหนด _id โดยตรงตอนสร้าง Schema

ตอนสร้าง Schema เรากำหนดลงไปเองได้เลย

const schema = new Schema({ _id: Number });
const Model = mongoose.model('CustomIDDocument', schema);

2. ตอนใช้ พึงระวังให้ดี

ที่ว่าแต่ในตอนเริ่มต้น นั่นเพราะถ้าเราทำการกำหนด document id โดยตรง แล้วตอนเอา Schema มาสร้างเป็น model ใช้งาน ถ้าไม่กำหนด _id แล้วสั่ง .save() ตัว Mongoose จะงอแงครับ

const doc = new Model();
await doc.save(); // จะเจอ error "document must have an _id before saving"

ดังนั้น ถ้าให้มันไม่งอแง เราต้องจัดการเอง

doc._id = 1;
await doc.save(); // แบบนี้ได้ 

อ้างอิง – Mongoose Documentation

เริ่มต้นยุค AI ด้วยคอร์สฟรี และพรีเมี่ยม กับพล

หากชอบสิ่งที่พลเล่า เรื่องที่พลสอน สามารถสนับสนุนพลโดยการเข้าเรียนคอร์สออนไลน์ของพลนะคร้าบ

  • เข้าใจง่าย ใช้ได้จริง ออกแบบการสอนอย่างเข้าใจโดยโค้ชพล
  • มีคอร์สสำหรับคนใช้งานทั่วไป จนถึงเรียนรู้เพื่อใช้งานในสายอาชีพขั้นสูง
  • ทุกคอร์สมีใบประกาศณียบัตรรับรองหลังเรียนจบ

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

Allow All
Manage Consent Preferences
  • Always Active

Save