آشنایی با انواع Data Type در مانگو دی‌ بی

آشنایی با انواع Data Type در مانگو دی‌ بی

در این بخش از آموزش مانگو دی بی می‌ خواهیم با انواع Data Type در مانگو دی‌ بی مورد استفاده قرار می گیرد آشنا شویم.

در این آموزش که بخشی از آموزش مبانی مانگو دی‌بی می باشد ابتدا بایستی بدانید که مانگو دی بی چیست و چه کاربردی دارد و بعد از آن با اصول اولیه مانگو دی بی و راهنمای نصب مانگو دی بی آشنا شده باشید و سپس از آن وارد محیط پایگاه داده مانگو دی بی شده و بتوانید عملیات اینسرت اسناد (Inserting Documents) را انجام دهید.

Data Type در مانگو دی‌ بی چیست؟

ساختاری مانند سایر پایگاه های داده که می توانید اطلاعات را با هر ساختاری را با قواعدی در پایکاه داده ذخیره کنید که بتوانید با داده ها عملیات های متفاوتی را انجام دهید.

متداول ترین Data Type در مانگو دی‌ بی

Null

نوع داده‌ای null برای نشان دادن و نمایش null و فیلدی که مقداری ندارد (مقدار خالی) مورد استفاده قرار می گیرد.

{ 
   "isbn": null 
}

Boolean

نوع داده‌‌ای boolean از نوع data type منطقی می باشد و دارای دو مقدار true و false می‌باشد.

{ 
   "best_seller": true 
}

Number

به صورت پیش‌فرض، ابزار Mongodb Shell برای نمایش اعداد در مانگو دی بی از اعداد اعشاری 64-bit استفاده می‌کند.

{ 
    "price": 9.95, 
    "pages": 851 
}

کلاس‌های NumberInt و NumberLong برای نمایش اعداد صحیح به ترتیب ۴ بایت و ۸ بایت را استفاده می کند و نمایش می دهد.

{
   "year": NumberInt("2020"),
   "words": NumberLong("95403")
}

String

نوع داده‌ string برای نمابش متن یا رشته‌ی متنی از کاراکترهایی که می تواند از استاندارد UTF-8 هم پشتیبانی می کند.

{
   "title": "MongDB Data Types"
}

Date

نوع داده‌ی date یا همان تاریخ را می توان به صورت اعداد صحیح ۶۴ بیتی ذخیره کند که نشان‌دهنده‌ی میلی ثانیه از زمان ایجاد سیستم عامل یونیکس (January 1, 1970) است. این نوع داده date منطقه‌ی زمانی time zone را نمی تواند ذخیره کند.

{
    "updated_at":  new Date()
}

در جاوا اسکریپت کلاس Date برای نمایش نوع داده‌ی date در مانگو دی‌ بی مورد استفاده قرار می‌گیرد.

توجه داشته باشید برای صدا زدن تاریخ باید از کلاس ()new Date صدا کنید نه فقط ()Date و زمانی که یک آبجکت جدیدی از Date ایجاد می‌کنید تابع ()Date تاریخ را به صورت یک رشته‌ی متنی به شما نمایش می‌دهد نه یک آبجکت از نوع تاریخ.

ابزار Mongodb Shell همیشه مقدار تاریخ‌ها را با استفاده‌ی تنظیمات time zone محلی نمایش می‌دهد. با این حال مانگو دی‌ بی تاریخ را با حالت منطقه‌ی زمانی time zone نمی‌تواند ذخیره کند. و برای ذخیره‌ی تاریخ با منطقه‌ی زمانی time zone می‌توانید از یک کلید دیگری timezone را گرفته و ذخیره کنید.

Regular Expression

مانگو دی‌ بی به شما اجاره می‌دهد که JavaScript regular expressions را ذخیره کنید.

{
    "pattern": /\d+/
}

در مثال بالا عبارت تنظیم /\d+/ در واقع با هر عبارتی که یک یا بیش از عدد داشته باشد را تطبیق می‌دهد.

Array

نوع داده Array به شما این امکان را می‌دهد که لیستی از مقادیری را با هر نوع data type که داشته باشد را در کنار هم ذخیره کند. و در این لیست لازم نیست تمامی مقادیر از نوع داده‌ی data type باشد.

{
    "title": "MongoDB Array",
    "reviews": ["John", 3.5, "Jane", 5]
}

در سندهای مانگو دی بی خوبی آرایه این است که مانگود ی‌ بی ساختار لیست را به خوبی درک می‌کند و به شما این امکان را می‌دهد روی هر عنصر و مقدار هر نوع عملیات را به صورت مجزا انجام دهید.

به عنوان مثال، به شما اجازه می‌دهد تمام اسنادی که دارای آرایه‌ای با 5 عنصر و مقدار می‌باشد را جست‌وجو و بررسی کنید (کوئری بزنید).

همچنین می‌توانید برای بهبود عملکرد خروجی روی کوئری یک ایندکس روی آرایه تعریف کنید.

Embeded Document

مقادیر یک document می‌تواند از document دیگری ربط داده شود و مرتبط شود که اغلب به این نوع داکیومنت ها اصطلاحا embedded document می‌گویند که در مانگو دی‌ بی آن‌ها را embedded document می‌نامند.

مثال زیر اطلاعات document به نام book را نشان می‌دهد که اطلاعات آن به document به نام author اشاره دارد که آنرا اصطلاحا embedded document می نامند.

{
    "title": "MongoDB Tutorial",
    "pages": 945,
    "author": {
       "first_name": "John",
       "last_name": "Doe"
    }
}

در مثال بالا، document به نام author خودش دارای دو مقدار جفت کلید و مقدار key/value به نام و نام می‌باشد.

Object ID

در مانگو دی‌ بی هر document یک کلیدی به نام "id_"دارد که مقدار کلید "id_" می‌تواند از نوع data type می تواند باشد. با این حال، data type آن به طور پیش‌فرض نوع ObjectId است.

مقدار کلید "id_" در یک collection بایستی منحصر به خود unique باشد تا مانگو دی‌ بی بتواند از طریق آن هر document که در collection می‌باشد را شناسایی کند.

کلاس ObjectId نوع داده ای default برای "id_" است برای تولید مقادیر منحصربه‌فرد unique در سراسر سرور مانگو دی‌ بی مورد استفاده قرار می‌گیرد.

از آن‌جایی که مانگودی‌بی به صورت توزیع شده distributed طراحی شده است مهم هستش که اطمینان حاصل شود که شناسه‌هایی برای هر document در محیط‌های اشتراکی shared environment به صورت منحصربه‌فرد باشد.

ObjectId حدود 12 بایت از فضا را به خود اختصاص می‌دهد که هر بایت نشان‌دهنده‌ی 2 رقم hexadecimal است. در مجموع یک ObjectId حدود 24 رقم hexadecimal است.

یک ObjectId که 12 بایتی فضا اشغال می کند شامل موارد زیر است:

  • 4 بایت آن نشان‌دهنده‌ی زمان تولید timestamp است که برای ObjectId به صورت میلی ثانیه از زمان یونیکس اندازه‌گیری شده است.
  • 5 بایت آن برای تولید اعداد و مقدار تصادفی random است.
  • 3 بایت آن هم یک شمارنده‌ی افزایشی است که به مقدار تصادفی random اضافه می‌شود.

در یک ObjectId حدود 9 بایت اول، در میان تمامی سرورها و فرآیندها در یک ثانیه تضمین می‌کند اعداد تولید شده منحصر به‌ فرد unique است و 3 بایت آخر آن منحصر به‌ فرد unique بودن مقدار را در یک ثانیه در یک فرآیند واحد تضمین می‌کند.

در نتیجه‌ این 12 بایت به شما اجازه می‌دهد که در هر فرآیند در یک ثانیه تعداد 2563 مقدار ObjectId منحصر به‌ فرد unique تولید شود.

زمانی که سندی را بدون تعیین و مشخص کردن مقداری برای کلید "id_" به collection اضافه و insert می کنید مانگو دی‌ بی به طور خودکار یک شناسه‌ی منحصر به‌ فرد unique برای شناسه document ایجاد می‌کند.

db.books.insertOne({
   "title": "MongoDB Basics"
});

خروجی دستور به شکل زیر نمایش داده می‌شود:

{
        "acknowledged" : true,
        "insertedId" : ObjectId("5f2fcae09b58c38603442a4f")
}

زمانی که document جدید insert می شود مانگو دی بی مقدار شناسه "id_" را به شکل ObjectId("5f2fcae09b58c38603442a4f") تولید می کند.

زمانی که document را که insert شده است را مشاهده کنید و بخواهید اطلاعات document را ببینید دستور زیر را وارد کنید.

 db.books.find().pretty()

خروجی دستور به شکل زیر نمایش داده می‌شود:

{ 
    "_id" : ObjectId("5f2fcae09b58c38603442a4f"), 
     "title" : "MongoDB Basics" 
}

شما در این آموزش با متداول‌ترین نوع داده‌ها data types در مانگودی‌بی از جمله null, number, string, array regular expression, date, ObjectId تا حدی آشنا شدید.

برای ادامه آموزش مانگو دی‌ بی MongoDB می توانید مقاله آشنایی با دستور InsertOne در مانگو دی‌ بی را مطالعه کنید.

محسن زمانی هستم، برنامه نویس و طراح وب ، سئو هم بلدم . به هدف تفریح و سرگرمی این وب سایت رو طراحی کردم تا مطالبی که دوست دارم رو اینجا به اشتراک بزارم.

دیدگاه خود را بنویسید:

آدرس ایمیل شما نمایش داده نخواهد شد.