علی قایینی
علی قایینی
خواندن ۲ دقیقه·۵ سال پیش

چه موقع از مونگو (mongoDB) استفاده کنیم؟


قبل از هر چیزی یک توضیح مختصر راجب مونگو بدیم:

مونگو یک پایگاه داده سند گرا (document base) و مقیاس پذیر و NoSQL هست که به ما انعطاف پذیری بالایی میده تا اطلاعات خودمون رو بدون ساختار مشخصی ذخیره کنیم.

هر ابجکت حاوی اطلاعات در مونگو داکیومنت (document) نام می گیرد و داکیومنت ها در داخل collection ذخیره می شوند به جای ذخیره اطلاعات در ستون ها و ردیف ها در دیتابیس های رابطه ای.

تفاوت ذخیره اطلاعات در مونگو با دیتابیس های رابطه ای
تفاوت ذخیره اطلاعات در مونگو با دیتابیس های رابطه ای


هدف مونگو ذخیره اطلاعات با عملکرد بالا و دسترس پذیری بالا هست. مونگو به راحتی نصب و راه اندازی میشه. مونگو برای ذخیره اطلاعات در داکیومنت ها از Json یا Bson استفاده میکنه.

اگه با اصطلاحات مونگو آشنا نیستید‌ تصویر زیر ترجمه اصطلاحات مونگو به SQL Server را نشان میدهد:

اصطلاحات در مونگو
اصطلاحات در مونگو

برگردیم به بحث اصلی و بررسی کنیم چه زمانی مونگو رو انتخاب کنیم.

مزیت ها:

  • سند گرا (document base)
  • عملکرد بالا
  • دسترسی بالا به وسیله (Replication)
  • مقیاس پذیری بالا (Sharding)
  • پویا بودن و بدون نیاز به ساختار از پیش تعیین شده
  • منعطف بودن به جهت داشتن فیلد های متفاوت در هر داکیومنت
  • عدم استفاده از join
  • ارائه اطلاعات در فرمت JSON و BSON
  • پشتیبانی از توابع و ایندکس های جغرافیایی (موقعیت های مکانی)
  • زبان پرس و جوی سند گرا و با قدرت مشابه SQL

معایب:

  • پیاده نشدن خاصیت ACID به خوبی دیتابیس های RDBMS
  • وجود نداشتن function و stored procedure

مونگو رو در چه پروژه هایی پیاده سازی کنیم؟

  • وبلاگ ها و مدیریت محتوا
  • کاتالوگ محصولات فروشگاه
  • لاگ با سرعت بالا و کش
  • مدیریت پیکربندی (configuration)
  • نگهداری اطلاعات بر پایه لوکیشن و موقعیت مکانی
  • شبکه های اجتماعی
  • جایی که ممکن است در آینده ساختار اطلاعات تغییر کند

چه جاهایی از مونگو استفاده نکنیم؟

  • سیستم هایی که به تراکنش های زیادی (transactional systems) نیاز دارند.
  • سیستم هایی که ساختار مشخص و ثابتی دارند.

این یه مرور سریع برای استفاده کردن یا استفاده نکردن از مونگو بود که خیلی تیتر وار به مسائل پرداخته شد.


برنامه نویسیمونگوmongodbdatabaseدیتابیس
یه بک اند دولوپر :)
شاید از این پست‌ها خوشتان بیاید