MongoDB มี objectid
ในบทแรก ๆ ที่เราได้ใช้วัตถุ ID MongoDB (มี objectid)
ในส่วนนี้เราจะมาดูโครงสร้างของมี objectid
มี objectid BSON เป็น 12 ไบต์ชนิดข้อมูลมีรูปแบบต่อไปนี้:
- ครั้งแรกที่ประทับเวลาสี่ไบต์
- สามไบต์ต่อไปของรหัสเครื่องคือ
- ทันทีไบต์ที่สองประกอบด้วยกระบวนการ ID (PID)
- ล่าสุดสามไบต์ของตัวเลขสุ่ม
เอกสาร MongoDB เก็บไว้ที่นั่นจะต้องเป็น "_id" ที่สำคัญ ค่าของคีย์นี้สามารถใช้วิธีใดวิธีเริ่มต้นคือวัตถุที่มี objectid
ในหนึ่งชุดภายในเอกสารแต่ละคนมีที่ไม่ซ้ำกัน "_id" ค่าเพื่อให้มั่นใจว่าคอลเลกชันที่อยู่ภายในเอกสารแต่ละสามารถระบุได้โดยไม่ซ้ำกัน
MongoDB ใช้มี objectid แต่วิธีการธรรมดาไม่ได้เป็นเหตุผลหลักอื่น ๆ (เช่นคีย์หลักเพิ่มโดยอัตโนมัติ) เพราะค่าคีย์หลักจะเพิ่มขึ้นโดยอัตโนมัติในการประสานเซิร์ฟเวอร์หลายเครื่องยังเป็นเวลานานและลำบาก
สร้างใหม่มี objectid
ใช้รหัสต่อไปนี้เพื่อสร้างใหม่มี objectid:
>newObjectId = ObjectId()
ข้อความข้างต้นจะส่งกลับต่อไปนี้สร้าง ID ที่ไม่ซ้ำกัน:
ObjectId("5349b4ddd2781d08c09890f3")
นอกจากนี้คุณยังสามารถใช้ ID ที่สร้างขึ้นแทน MongoDB สร้างขึ้นโดยอัตโนมัติมี objectid:
>myObjectId = ObjectId("5349b4ddd2781d08c09890f4")
เอกสารการสร้างการประทับเวลา
ตั้งแต่มี objectid เก็บไว้ในสี่ไบต์ของการประทับเวลาเพื่อให้คุณไม่จำเป็นต้องบันทึกข้อมูลการประทับเวลาสำหรับเอกสารของคุณคุณสามารถสร้างช่วงเวลาที่จะได้รับเอกสารโดยฟังก์ชั่น getTimestamp นี้:
>ObjectId("5349b4ddd2781d08c09890f4").getTimestamp()
รหัสดังกล่าวจะกลับมาในเวลา ISO สร้างเอกสารรูปแบบ:
ISODate("2014-04-12T21:49:17Z")
มี objectid แปลงสตริง
ในบางกรณีคุณอาจจะต้องแปลงสตริงรูปแบบมี objectid คุณสามารถใช้รหัสต่อไปนี้:
>new ObjectId().str
รหัสดังกล่าวจะกลับมารูปแบบสตริง Guid ฯ ::
5349b4ddd2781d08c09890f3