مرحله اول استفاده از MongoDB، درک مفاهیم اساسی MongoDB و مدل دادهها (ساختار داده) است، و آشنایی با نحوه ذخیره سازی داده. در واقع، MongoDB بسیار شبیه به MySQL است، بنابراین هر کسی که MySQL را بلد باشد، هیچ مشکلی در یادگیری MongoDB نخواهد داشت.
مفاهیم اساسی MongoDB
پایگاه داده
پایگاه داده MongoDB همان پایگاه داده MySQL است.
مجموعه
یک مجموعه MongoDB به مجموعهای از دادههای سند اشاره دارد، مشابه مفهوم یک جدول در MySQL.
سند
یک سند MongoDB، مشابه یک ردیف داده در جدول MySQL است، یک داده با ساختار JSON که از چندین فیلد تشکیل شده و ساختار سند در MongoDB را بسیار انعطافپذیر میکند.
فیلد
فیلد سند MongoDB شبیه به مفهوم یک فیلد در جدول MySQL است، که نمایانگر داده خاصی است که باید ذخیره شود و هر فیلد دارای نوع داده خود است.
اندیس
اندیس MongoDB مشابه اندیس MySQL است، با هدف بهبود کارآیی پرس و جو.
گروهبندی
مفهوم گروهبندی MongoDB مشابه تحلیل گروهای/تعداد/جمعآوری در MySQL است، برای تجزیه و تحلیل آماری دادهها به کار میرود.
مقایسه مفاهیم بین MongoDB و MySQL
MySQL | MongoDB |
---|---|
پایگاه داده | پایگاه داده |
جدول | مجموعه |
ردیف | سند |
ستون | فیلد سند |
اندیس | اندیس |
گروهبندی (به عنوان مثال، group by) | گروهبندی |
بطور کلی، مفاهیم MongoDB میتواند با MySQL هماهنگ شود، بنابراین MongoDB شبیهترین پایگاه داده غیررابطهای به پایگاههای داده رابطهای (NoSQL) است.
دادههای سند MongoDB
یک سند، به سادگی یک ساختار JSON تشکیل شده از چندین فیلد است، هر کدام دارای نوع داده خود. در زمان توسعه با MongoDB، تمرکز بیشتر بر روی طراحی ساختار سند است، مشابه طراحی ساختار جدولها در MySQL.
مثال دادهی سند MongoDB:
{
"_id": "5cf0029caff5056591b0ce7d",
"نام": "جین",
"نامخانوادگی": "وو",
"آدرس": {
"خیابان": "خیابان دایرکل",
"شهر": "لسآنجلس",
"استان": "کالیفرنیا",
"کدپستی": "90404"
},
"سرگرمیها": ["موجسواری", "کدنویسی"]
}
این میتواند هر ساختار JSON تعمیم یافته دلخواهی باشد، چیزی که ساختار جداول MySQL نمیتواند دست یابد. فیلد _id
به عنوان کلید اصلی سند عمل میکند و اگر مقدار خاصی مشخص نکنید، MongoDB مقدار منحصر به فردی را به صورت تصادفی ایجاد میکند.
بزرگترین تفاوت بین ساختار داده MongoDB و جداول MySQL این است که MongoDB نیازی به پیشتعریف ساختار سند ندارد. با MongoDB، میتوانید به طور مستقیم دادههای JSON را به یک مجموعه MongoDB بدون نیاز به طرحهای اولیهای درج کنید. هر بار که دادههای JSON را به یک مجموعه MongoDB مینویسید، قالب میتواند متفاوت باشد و اجازه میدهد تا فیلدها به دلخواه اضافه یا حذف شوند.
توجه: اگرچه ساختار سند MongoDB بسیار انعطافپذیر است و میتواند فرمتهای دادهای متفاوت را برای هر ورودی شامل شود، در برنامههای عملی، معمولاً ساختار داده در یک مجموعه یکنواخت است. در غیر اینصورت، اگر فرمت ورودی هر بار متفاوت باشد درون مجموعه، نگهداری آن تبدیل به کابوس خواهد بود چرا که شما هر بار فرمت دادههای بازیابی شده را نخواهید دانست.