ژنراتور ObjectID منحصر به فرد برای MongoDB
برای تست، توسعه یا اهداف آموزشی، ObjectID های معتبر MongoDB را تولید کنید. این ابزار شناسههای منحصر به فرد 12 بایتی را که در پایگاه دادههای MongoDB استفاده میشود ایجاد میکند که از یک زمانسنج، مقدار تصادفی و شمارنده افزایشی تشکیل شده است.
ژنراتور ObjectID MongoDB
مستندات
تولید کننده ObjectID MongoDB
مقدمه
ObjectID MongoDB یک شناسه منحصر به فرد است که در پایگاههای داده MongoDB استفاده میشود. این ابزار به شما امکان میدهد تا ObjectIDهای معتبر MongoDB را برای آزمایش، توسعه یا اهداف آموزشی تولید کنید. ObjectIDها انواع BSON 12 بایتی هستند که از یک زمانسنج 4 بایتی، یک مقدار تصادفی 5 بایتی و یک شمارنده افزایشی 3 بایتی تشکیل شدهاند.
نحوه استفاده از این تولید کننده
- تعداد ObjectIDهایی که میخواهید تولید کنید (بین 1 تا 100) را وارد کنید.
- روی دکمه "تولید" کلیک کنید تا ObjectIDها ایجاد شوند.
- ObjectIDهای تولید شده به همراه تصویری از ساختار آنها نمایش داده میشود.
- میتوانید با استفاده از دکمه "کپی نتیجه" ObjectIDهای تولید شده را به کلیپ بورد خود کپی کنید.
ساختار ObjectID MongoDB
یک ObjectID MongoDB شامل موارد زیر است:
- یک مقدار 4 بایتی که نمایانگر ثانیههای گذشته از زمان Unix است
- یک مقدار تصادفی 5 بایتی
- یک شمارنده افزایشی 3 بایتی که با یک مقدار تصادفی اولیهگذاری شده است
ساختار میتواند به صورت زیر بصریسازی شود:
1|---- زمانسنج -----|-- تصادفی --|-- شمارنده -|
2 4 بایت 5 بایت 3 بایت
3
فرمول
در حالی که فرمول ریاضی برای تولید ObjectIDها وجود ندارد، فرآیند میتواند به صورت الگوریتمی توصیف شود:
- زمانسنج فعلی (ثانیههای گذشته از زمان Unix) را بگیرید
- یک مقدار تصادفی 5 بایتی تولید کنید
- یک شمارنده 3 بایتی را با یک مقدار تصادفی اولیهگذاری کنید
- این اجزا را ترکیب کنید تا ObjectID 12 بایتی تشکیل شود
فرآیند تولید
تولید کننده ObjectID مراحل زیر را دنبال میکند:
- زمانسنج Unix فعلی را به یک مقدار 4 بایتی هگزادسیمال تبدیل کنید
- 5 بایت تصادفی تولید کنید و آنها را به هگزادسیمال تبدیل کنید
- یک شمارنده تصادفی 3 بایتی تولید کنید و آن را به هگزادسیمال تبدیل کنید
- این سه جزء را به هم بچسبانید تا یک رشته هگزادسیمال 24 کاراکتری تشکیل شود
موارد استفاده
ObjectIDهای MongoDB چندین مورد استفاده مهم دارند:
-
شناسههای منحصر به فرد اسناد: ObjectIDها به عنوان فیلد پیشفرض
_id
در اسناد MongoDB عمل میکنند و اطمینان میدهند که هر سند یک شناسه منحصر به فرد دارد. -
اطلاعات زمانسنج: 4 بایت اول یک ObjectID حاوی زمانسنج است که اجازه میدهد زمان ایجاد به راحتی استخراج شود بدون نیاز به یک فیلد جداگانه.
-
مرتبسازی: ObjectIDها میتوانند به صورت زمانی مرتب شوند که برای بازیابی اسناد به ترتیب درج مفید است.
-
شاردینگ: در یک خوشه شارد شده MongoDB، ObjectIDها میتوانند به عنوان کلیدهای شارد استفاده شوند، اگرچه این همیشه بهترین انتخاب برای هر مورد استفاده نیست.
-
اشکالزدایی و ثبت: جزء زمانسنج ObjectIDها میتواند در اشکالزدایی و تحلیل لاگ مفید باشد.
جایگزینها
در حالی که ObjectIDها شناسه پیشفرض در MongoDB هستند، گزینههای دیگری نیز وجود دارند:
- شناسههای طبیعی: استفاده از یک شناسه منحصر به فرد طبیعی از دادههای شما (مانند آدرس ایمیل، ISBN)
- شمارههای خودافزایشی: مشابه کلیدهای اصلی خودافزایشی در RDBMSهای سنتی
- UUIDها: شناسههای منحصر به فرد جهانی که شناسههای 128 بیتی هستند
- طرحهای تولید سفارشی: ایجاد منطق تولید شناسه خود برای برآورده کردن نیازهای خاص
تاریخچه
ObjectIDها با انتشار اولیه MongoDB در سال 2009 معرفی شدند. آنها برای ارائه یک شناسه منحصر به فرد طراحی شدهاند که میتواند به سرعت و به طور مستقل توسط سرورهای مختلف تولید شود و آنها را برای سیستمهای توزیع شده ایدهآل میسازد.
ساختار ObjectIDها در طول تاریخ MongoDB ثابت مانده است، اگرچه پیادهسازی خاص نحوه تولید آنها در طول زمان بهینهسازی شده است.
مثالها
در اینجا کدهایی برای تولید ObjectIDهای MongoDB در زبانهای برنامهنویسی مختلف آورده شده است:
1import bson
2
3## تولید یک ObjectID واحد
4object_id = bson.ObjectId()
5print(object_id)
6
7## تولید چندین ObjectID
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// تولید چندین ObjectID
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 // تولید چندین ObjectID
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## تولید چندین ObjectID
8object_ids = 5.times.map { BSON::ObjectId.new.to_s }
9puts object_ids
10
این مثالها نشان میدهند که چگونه میتوان از درایورهای رسمی MongoDB یا کتابخانههای BSON در زبانهای برنامهنویسی مختلف برای تولید ObjectIDها استفاده کرد. ObjectIDهای تولید شده منحصر به فرد خواهند بود و از ساختار توصیف شده در بالا پیروی خواهند کرد.
منابع
- "ObjectId." مستندات MongoDB، https://docs.mongodb.com/manual/reference/method/ObjectId/. دسترسی در 2 آگوست 2024.
- "انواع BSON." مشخصات BSON، http://bsonspec.org/spec.html. دسترسی در 2 آگوست 2024.
- "ObjectID MongoDB." ویکیپدیا، بنیاد ویکیمدیا، https://en.wikipedia.org/wiki/ObjectId. دسترسی در 2 آگوست 2024.
بازخورد
برای شروع دادن بازخورد درباره این ابزار، روی نوار بازخورد کلیک کنید
ابزارهای مرتبط
ابزارهای بیشتری را کشف کنید که ممکن است برای جریان کار شما مفید باشند