فیلد Object id در مانگو

Facebooktwittergoogle_pluspinterestlinkedinmail
Print Friendly, PDF & Email

اگر با پایگاه داده سندگرای مانگو کار کرده باشید حتما با این موضوع که تمامی داکیومنت هایی که ایجاد می کنید چه بخواهید چه نخواهید دارای یک فیلد به نام _id هستند. در این نوشته یکسری نکات درباره این فیلد برای شما می نویسم.

این id یک BSON 12 بایتی می باشد.

  • 4 بایت نشان دهنده ثانیه های گذشته از زمان شروع به کار یونیکس
  • 3 بایت شناسه ماشین
  • 2 بایت شماره پردازش
  • 3 بایت شمارنده با مقدار تصادفی

مانگو سید محمدامین ساجدی

_idبصورت کلید اصلی یا primary key عمل می کند.

در صورتیکه هنگام ایجاد یک داکیومنت این فیلد را فراموش کنید mongo shell بصورت خودکار این فیلد را ایجاد می کند.

مانگو سید محمدامین ساجدی

مزایای این فیلد:

  • در شل مانگو می توانید به زمان ایجاد این داکیومنت دسترسی پیدا کنید( getTimestamp() ).
  • مرتب سازی بر اساس زمان تولید داکیومنت با سرعت بالا توسط mongo shell
  • برای _id فضای بسیار کمی (12 بایت) اشغال می شود که در برابر نوع string که معمولا برای نام داکیومنت ها انتخاب می کنند خیلی به صرفه تر است.
  • در زمان insert کردن در پایگاه، بخاطر اینکه خود shell مانگو این فیلد را برای شما ایجاد و مقداردهی می کند، داده کمتری ارسال می شود.
  • در محیط های توزیع شده که ممکن است id های تکراری ایجاد شود، این بحث به کمک ما می آید چراکه خود shell مقداردهی ها را انجام می دهد.

توجه: درصورتیکه این فیلد را در داکیومنت خود قرار دهید ولی در ابتدای آن نباشد، shell این فیلد را هنگام ذخیره کردن در ابتدای داکیومنت قرار می دهد بدون اینکه به شما چیزی بگوید. دلیل این کار هم استفاده مداوم از این فیلد و در دسترس قرار دادن آن می باشد.


اگر دوس دارید با پایگاه داده سندگرای مانگو آشنا بشید، به این مطلب که آموزش کار با این پایگاه هست مراجعه کنید.


شما احتمالا این مطالب را نیز دوست دارید...

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *