Latest web development tutorials

MongoDB ObjectId

في الفصول القليلة الأولى التي استخدمناها كائن MongoDB رقم (ObjectId).

في هذا القسم، سوف نلقي نظرة على هيكل ObjectId.

ObjectId BSON هو نوع بيانات 12 بايت، يحتوي على التنسيق التالي:

  • أول طابع زمني أربعة بايت
  • البايتات الثلاثة المقبلة من التعليمات البرمجية الآلة
  • على الفور اثنين بايت ألحان معرف العملية (PID)
  • البايتات الثلاثة الأخيرة من الأرقام العشوائية.

وثائق MongoDB المخزنة يجب أن يكون هناك مفتاح "_ID". قيمة هذا المفتاح يمكن أن يكون أي نوع، الافتراضي هو كائن ObjectId.

في مجموعة واحدة داخل كل وثيقة له قيمة واحدة "_ID"، لضمان جمع داخل ويمكن تحديد كل وثيقة فريدة من نوعها.

يستخدم MongoDB ObjectId، ولكن المنهج التقليدي ليس هو السبب الرئيسي الآخر (مثل المفتاح الأساسي لصناعة السيارات زيادة)، وذلك لأن ارتفعت قيمة المفتاح الأساسي تلقائيا مزامنة عبر ملقمات متعددة هي أيضا تستغرق وقتا طويلا وشاقة.


إنشاء ObjectId جديد

استخدام التعليمات البرمجية التالية لتوليد ObjectId الجديد:

>newObjectId = ObjectId()

العبارة أعلاه إرجاع التالية معرف لدت فريد:

ObjectId("5349b4ddd2781d08c09890f3")

يمكنك أيضا استخدام المعرف الذي تم إنشاؤه بدلا من MongoDB إنشاؤه تلقائيا ObjectId:

>myObjectId = ObjectId("5349b4ddd2781d08c09890f4")

وثائق الطابع الزمني خلق

منذ ObjectId المخزنة في أربعة بايت من الطابع الزمني، لذلك لا تحتاج إلى حفظ مجال زمني لالمستندات الخاصة بك، يمكنك إنشاء الوقت للحصول على وثائق من قبل وظيفة getTimestamp:

>ObjectId("5349b4ddd2781d08c09890f4").getTimestamp()

سوف رمز أعلاه بإرجاع الوقت وثيقة تنسيق ISO الصنع:

ISODate("2014-04-12T21:49:17Z")

تحويل ObjectId إلى سلسلة

في بعض الحالات، قد تحتاج إلى تحويل شكل ObjectId السلسلة. يمكنك استخدام التعليمات البرمجية التالية:

>new ObjectId().str

سوف رمز أعلاه بإرجاع شكل ارشد سلسلة ::

5349b4ddd2781d08c09890f3