เครื่องมือสร้าง ObjectID สำหรับ MongoDB ที่ไม่ซ้ำกัน
สร้าง ObjectID ของ MongoDB ที่ถูกต้องสำหรับการทดสอบ การพัฒนา หรือการศึกษา เครื่องมือนี้สร้างตัวระบุที่ไม่ซ้ำกัน 12 ไบต์ที่ใช้ในฐานข้อมูล MongoDB ซึ่งประกอบด้วย timestamp ค่าแบบสุ่ม และเคาน์เตอร์ที่เพิ่มขึ้น
ตัวสร้าง MongoDB ObjectID
เอกสารประกอบ
MongoDB ObjectID Generator
Introduction
MongoDB ObjectID เป็นตัวระบุที่ไม่ซ้ำกันที่ใช้ในฐานข้อมูล MongoDB เครื่องมือนี้ช่วยให้คุณสามารถสร้าง MongoDB ObjectIDs ที่ถูกต้องสำหรับการทดสอบ การพัฒนา หรือวัตถุประสงค์ทางการศึกษา ObjectIDs เป็นประเภท BSON ขนาด 12 ไบต์ ประกอบด้วยค่าเวลา 4 ไบต์ ค่าแบบสุ่ม 5 ไบต์ และนับที่เพิ่มขึ้น 3 ไบต์
How to Use This Generator
- ป้อนจำนวน ObjectIDs ที่คุณต้องการสร้าง (ระหว่าง 1 ถึง 100)
- คลิกที่ปุ่ม "Generate" เพื่อสร้าง ObjectIDs
- ObjectIDs ที่สร้างขึ้นจะแสดงขึ้น พร้อมกับการแสดงภาพโครงสร้างของพวกมัน
- คุณสามารถคัดลอก ObjectIDs ที่สร้างขึ้นไปยังคลิปบอร์ดของคุณโดยใช้ปุ่ม "Copy Result"
Structure of MongoDB ObjectID
MongoDB ObjectID ประกอบด้วย:
- ค่า 4 ไบต์ที่แสดงถึงวินาทีตั้งแต่ยุค Unix
- ค่าแบบสุ่ม 5 ไบต์
- นับที่เพิ่มขึ้น 3 ไบต์ ซึ่งเริ่มต้นด้วยค่าที่สุ่ม
โครงสร้างสามารถแสดงภาพได้ดังนี้:
1|---- Timestamp -----|-- Random --|-- Counter -|
2 4 bytes 5 bytes 3 bytes
3
Formula
แม้ว่าจะไม่มีสูตรทางคณิตศาสตร์สำหรับการสร้าง ObjectIDs แต่กระบวนการสามารถอธิบายได้ตามลำดับ:
- รับค่าเวลา Unix ปัจจุบัน (วินาทีตั้งแต่ยุค Unix)
- สร้างค่าที่สุ่ม 5 ไบต์
- เริ่มต้นนับ 3 ไบต์ด้วยค่าที่สุ่ม
- รวมส่วนประกอบเหล่านี้เพื่อสร้าง ObjectID ขนาด 12 ไบต์
Generation Process
ตัวสร้าง ObjectID จะปฏิบัติตามขั้นตอนเหล่านี้:
- แปลงค่าเวลา Unix ปัจจุบันเป็นค่า 4 ไบต์ในรูปแบบเลขฐานสิบหก
- สร้าง 5 ไบต์แบบสุ่มและแปลงเป็นเลขฐานสิบหก
- สร้างนับ 3 ไบต์แบบสุ่มและแปลงเป็นเลขฐานสิบหก
- เชื่อมต่อส่วนประกอบทั้งสามนี้เพื่อสร้างสตริงเลขฐานสิบหกขนาด 24 ตัวอักษร
Use Cases
MongoDB ObjectIDs มีกรณีการใช้งานที่สำคัญหลายประการ:
-
ตัวระบุเอกสารที่ไม่ซ้ำกัน: ObjectIDs ทำหน้าที่เป็นฟิลด์
_id
เริ่มต้นในเอกสาร MongoDB เพื่อให้แน่ใจว่าเอกสารแต่ละฉบับมีตัวระบุที่ไม่ซ้ำกัน -
ข้อมูลเวลา: 4 ไบต์แรกของ ObjectID ประกอบด้วยค่าเวลา ทำให้สามารถดึงข้อมูลเวลาสร้างได้ง่ายโดยไม่ต้องใช้ฟิลด์แยกต่างหาก
-
การจัดเรียง: ObjectIDs สามารถจัดเรียงตามลำดับเวลา ซึ่งมีประโยชน์สำหรับการดึงเอกสารในลำดับการแทรก
-
การแบ่งส่วน: ในคลัสเตอร์ MongoDB ที่แบ่งส่วน ObjectIDs สามารถใช้เป็นคีย์แบ่งส่วน แม้ว่านี่จะไม่ใช่ทางเลือกที่ดีที่สุดสำหรับทุกกรณีการใช้งาน
-
การดีบักและการบันทึก: ส่วนประกอบเวลาใน ObjectIDs สามารถเป็นประโยชน์ในการดีบักและการวิเคราะห์บันทึก
Alternatives
ในขณะที่ ObjectIDs เป็นตัวระบุเริ่มต้นใน MongoDB แต่ก็มีทางเลือกอื่น:
- ตัวระบุธรรมชาติ: ใช้ตัวระบุที่ไม่ซ้ำกันตามธรรมชาติจากข้อมูลของคุณ (เช่น ที่อยู่อีเมล ISBN)
- หมายเลขที่เพิ่มขึ้นโดยอัตโนมัติ: คล้ายกับคีย์หลักที่เพิ่มขึ้นโดยอัตโนมัติใน RDBMS แบบดั้งเดิม
- UUIDs: ตัวระบุที่ไม่ซ้ำกันทั่วโลก ซึ่งเป็นตัวระบุขนาด 128 บิต
- โครงการสร้างที่กำหนดเอง: สร้างตรรกะการสร้าง ID ของคุณเองเพื่อตอบสนองความต้องการเฉพาะ
History
ObjectIDs ถูกนำเสนอในช่วงการเปิดตัว MongoDB ครั้งแรกในปี 2009 พวกเขาถูกออกแบบมาเพื่อให้ตัวระบุที่ไม่ซ้ำกันซึ่งสามารถสร้างได้อย่างรวดเร็วและอิสระโดยเซิร์ฟเวอร์ที่แตกต่างกัน ทำให้เหมาะสำหรับระบบที่กระจาย
โครงสร้างของ ObjectIDs ยังคงสอดคล้องกันตลอดประวัติศาสตร์ของ MongoDB แม้ว่าการดำเนินการเฉพาะเกี่ยวกับวิธีการสร้างจะได้รับการปรับแต่งในช่วงเวลาที่ผ่านมา
Examples
นี่คือตัวอย่างโค้ดที่แสดงวิธีการสร้าง MongoDB ObjectIDs ในภาษาการเขียนโปรแกรมต่างๆ:
1import bson
2
3## สร้าง ObjectID เดียว
4object_id = bson.ObjectId()
5print(object_id)
6
7## สร้าง ObjectIDs หลายตัว
8object_ids = [bson.ObjectId() for _ in range(5)]
9print(object_ids)
10
1const { ObjectId } = require('mongodb');
2
3// สร้าง ObjectID เดียว
4const objectId = new ObjectId();
5console.log(objectId.toString());
6
7// สร้าง ObjectIDs หลายตัว
8const objectIds = Array.from({ length: 5 }, () => new ObjectId().toString());
9console.log(objectIds);
10
1import org.bson.types.ObjectId;
2
3public class ObjectIdExample {
4 public static void main(String[] args) {
5 // สร้าง ObjectID เดียว
6 ObjectId objectId = new ObjectId();
7 System.out.println(objectId.toString());
8
9 // สร้าง ObjectIDs หลายตัว
10 for (int i = 0; i < 5; i++) {
11 System.out.println(new ObjectId().toString());
12 }
13 }
14}
15
1require 'bson'
2
3## สร้าง ObjectID เดียว
4object_id = BSON::ObjectId.new
5puts object_id.to_s
6
7## สร้าง ObjectIDs หลายตัว
8object_ids = 5.times.map { BSON::ObjectId.new.to_s }
9puts object_ids
10
ตัวอย่างเหล่านี้แสดงวิธีการสร้าง ObjectIDs โดยใช้ไดรเวอร์ MongoDB อย่างเป็นทางการหรือไลบรารี BSON ในภาษาการเขียนโปรแกรมต่างๆ ObjectIDs ที่สร้างขึ้นจะไม่ซ้ำกันและปฏิบัติตามโครงสร้างที่อธิบายไว้ก่อนหน้านี้
References
- "ObjectId." MongoDB Manual, https://docs.mongodb.com/manual/reference/method/ObjectId/. Accessed 2 Aug. 2024.
- "BSON Types." BSON Specification, http://bsonspec.org/spec.html. Accessed 2 Aug. 2024.
- "MongoDB ObjectID." Wikipedia, Wikimedia Foundation, https://en.wikipedia.org/wiki/ObjectId. Accessed 2 Aug. 2024.
ข้อเสนอแนะแสดงความคิดเห็น
คลิกที่ข้อเสนอแนะแสดงความคิดเห็นเพื่อเริ่มให้ข้อเสนอแนะแก่เครื่องมือนี้
เครื่องมือที่เกี่ยวข้อง
ค้นพบเครื่องมือเพิ่มเติมที่อาจมีประโยชน์สำหรับการทำงานของคุณ