ObjectId (معرّف الكائن)
آخر تحديث: 2026-10-09
ObjectId (معرّف الكائن)
ObjectId هو نوع _id الافتراضي في MongoDB — معرّف فريد من 12 بايت: طابع زمني من 4 بايتات + عشوائية من 5 بايتات + عدّاد من 3 بايتات. يُولَّد تلقائيًا عند إدراج مستند دون _id، وهو فريد عبر الأنظمة الموزعة، ويضمّن وقت الإنشاء (قابلًا للاستخراج).
| الفئة | أنواع BSON |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
// توليد تلقائي
{ _id: ObjectId("64c8a1b2f3d4e5a6b7c8d9e0") }
// الحصول على الطابع الزمني
ObjectId("...").getTimestamp()
القيمة المرجعة:يُرجع كائن ObjectId؛ ويُعرض كنص مكوَّن من 24 حرفًا سادس عشريًا
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// ObjectId: فحص بعد الإدراج
const oid = ObjectId()
print(oid.getTimestamp()) // وقت الإنشاء
المخرجات:
2026-09-25T08:30:00Z
📌 ملاحظات
- 12 بايتًا = طابع زمني يونكس من 4 بايتات + عشوائية من 5 + عدّاد من 3
- معرّفات الكائن شبه رتيبة؛ الترتيب بـ _id يقارب ترتيب الإدراج
- الصيغة النصية 24 حرفًا سداسيًا عشريًا
- getTimestamp() تستخرج وقت الإنشاء
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
الوثائق وBSON: حجر الأساس لبيانات MongoDB
إدراج المستندات: شرح مفصل لوظيفتي `insertOne` و`insertMany`
أنماط مونجوس المتقدمة: الأداء والمرونة
نماذج مونغوس وتصميم المخطط
التحقق من صحة البيانات والبرمجيات الوسيطة في Mongoose
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qهل يمكنني استخدام عدد صحيح متزايد تلقائيًا لحقل _id؟
Aنعم — حدد _id يدويًا عند الإدراج. لكن الأعداد الصحيحة المتزايدة تحتاج تنسيقًا تحت الكتابات الموزعة؛ وقد وُجد ObjectId تحديدًا لتجنب ذلك.
Qما صيغة سلسلة ObjectId؟
A24 حرفًا سداسيًا عشريًا، مثل 64c8a1b2f3d4e5a6b7c8d9e0 — بايت واحد لكل زوج.
Qهل يمكن ترتيب معرّفات الكائن حسب الوقت؟
Aتقريبًا — أول 4 بايتات طابع زمني، لذا الترتيب بـ _id يقارب ترتيب الإدراج وليس الوقت الدقيق.