آشنایی با دیتابیس MongoDB


در این نوشته سعی میکنیم در مورد دیتابیس محبوب MongoDB صحبت کنیم و توضیح می دهیم که mongodb چیست؟ و چرا باید از mongodb استفاده کنیم؟ .این دیتابیس از دسته پایگاه داده های NoSQL به حساب میاد که با نود جی اس همگام سازی شده . شاید بد نباشه مقاله محمدعلی در مورد تقاوت دیتابیس های SQL و NoSQL رو نگاهی بندازید و مطالعه کنید .
اما اگه بخواهیم خیلی کوتاه به این مورد اشاره کنیم به این معنا هست که داده و اطلاعاتمون در قالب جداول قرار نمیگیرند!! اگه به تازگی با این مباحث آشنا شدید و قبلا با دیتابیس ها sql سروکار داشتید شاید براتون تعجب آور باشه که چطور در یک پایگاه داده با جداول کار نمیکنیم . ما دیگه نیازی نداریم جدول ایجاد کنیم و بعد از اون ستون هارو هم مشخص کنیم و … ، ما در این جا یک Collection ایجاد میکنیم و داده هامون رو داخل سند ها درج میکنیم .به همین دلیل کار با این دیتابیس جلب توجه کرده که در ادامه سعی میکنیم بیشتر صحبت کنیم و موارد مثبت و منفی رو بررسی کنیم .
MongoDB چیست ؟
خب همونطور که گفتیم این دیتابیس NoSQL هست.مثلا در نظر بگیریم که میخوایم یک سری داده رو ذخیره کنیم، قبلا اولین کاری که انجام میدادیم ایجاد یک جدول بود که یه سری ستون داشت.در نظر بگیرید مثلا داده های ما اطلاعات تعدادی بیمار هست .
جدول ما شام نام و نام خانوداگی، نام دکتر و شماره تخت بیمار میشه (کاملا فرضی هست ) . حالا بعدا میخواهیم یک سری اطلاعات دیگه رو برای بیمارانمون ذخیره کنیم.باید برای کل جدولمون یک فیلد جدید بسازیم اما در دیتابیس NOSQL میتونیم یک ساختار رو تعریف کنیم و از اون پیروی کنیم اما علاوه بر این، بدون ساختار مشخص هم میتونیم اطلاعاتمون رو ذخیره کنیم .
در دیتابیس MongoDB اطلاعاتمون در قالب یک داکیومنت ذخیره میشه و ساختارشون یکسان نیست. داده های ما از یک key و value تشکیل شده .اگه بخوام موردی هم این تفاوت ها رو بیان کنم به این صورت میشه که :
همونطور که گفتیم در MongoDB ما Collection داریم و دیگه مثل گذشته از Table ها استفاده نمیکنیم .
به جای ستون ها که در SQL داشتیم ، Field هارو داریم .
با ردیف ها یا همون Row حتما آشنا هستید ، در MongoDB از Document استفاده میشه .
فیلد id در Mongo به عنوان کلید اصلی تعریف شده .


چراباید از MongoDB استفاده کنیم ؟
احتمالا تا به اینجا یک دید کوچک نسبت به MongoDB پیدا کردید.میشه گفت نسل دیتابیس های NOSQL روز به روز دارن طرفداران بیشتری رو پیدا میکنند و شما هم به عنوان یک متخصص این حوزه باید با این نسل از دیتابیس ها آشنایی داشته باشید . اما MongoDB چه ویژگی هایی داره که محبوبیت نسبتا خوبی پیدا کرده ؟
شاید اولین موردی که میشه به اون اشاره کرد سرعت بسیار بالایی هست که دیتا بیس های NOSQL نسبت به دیتابیس های SQL دارند.داده ها با سرعت خیلی بیشتری مبادله میشن و خب زمانی که با یک زبان مثل نود جی اس کار میکنیم نیاز به یک دیتابیس با سرعت بالا هم پیدا میکنیم و MongoDB گزینه بسیار خوبی هست.
نصب بسیار راحت و همچنین رایگان و متن باز بودن این دیتابیس هم از دلایل دیگر محبوبیت اون هست .
مورد بعدی که میشه به اون اشاره کرد استفاده خیلی راحت ازObject های سند در کد های برنامه هستش .
همچنین این دیتابیس میتونه در نقش یک File System باشه.زمانی که میخواهیم داده ها و اطلاعاتمون رو بهتر سازماندهی و ذخیره کنیم میتونیم از یک File System استفاده کنیم که خب MongoDB هم از قابلیت برخوردار هست و ما میتونیم خیلی راحت تر به داده هامون دسترسی داشته باشیم .
اگر خیلی راحت بخوام کدنویسی این دیتابیس رو مطرح کنیم به این صورت هستش که کد های هر داکیومنت شما داخل آکولاد {} قرار میگیره.تشابه کد نویسی mongodb به json رو داریم.
در mongo از سیستم master slave replication استفاده میشه که یکی دیگه از ویژگی های این دیتابیس به حساب میاد . در این حالت تابع قابلیت خواندن و نوشتن رو دارد اما slave ( متبوع) فقط قابلیت خواندن رو دارد . جالب اینجا هست که زمانی که تابع دچار مشکل میشه ، این امکان وجود داره که نسخه متبوع رو به جای تابع استفاده کنیم .در این صورت هیچ زمانی جایگاه تابع (master) خالی نمیشه .
Regular Expressions توسط اکثر زبان های برنامه نویسی پشتیانی میشه و شما با قوانینی که مربوط به خودش هست میتونید عبارات و رشته هارو تحلیل و جستجو کنید.در mongodb قابلیت جستجو داره که کارمون رو خیلی راحت تر میکنه برای رسیدن به اون چیزی که میخوایم و شما میتونید از عبارات با قاعده (Regular Expressions) استفاده کنید .
قطعا در انجام یک پروژه انتخاب درست پایگاه داده نقش مهمی رو داره ، در این نوشته سعی کردیم مختصرا با دیتابیس MongoDB آشنا بشیم ، درپروژه هایی که حجم سنگینی از داده هارو دارید این دیتابیس میتونه خیلی بهتون کمک کنه ، البته که خیلی بیشتر و تخصصی تر میشه در مورد MongoDB صحبت کرد، شما هم اگر تجربه کار با این دیتابیس و مباحث nosql رو دارید در کامنت ها با ما به اشتراک بزارید تا همه بتونیم استفاده کنید . اگه علاقه مند به مطالعه بیشتر هستید شاید بد نباشه نگاهی به مقالات دو وب سایت guru99.com و searchdatamanagement بندازید .
همچنین برای یادگیری mongodb(مانگو دبی بی) می توانید از آموزش رایگان mongodb که قبلا آماده شده استفاده کنید.
دیدگاهتان را بنویسید