آموزش کار با دیتابیس Mongodb

تاریخ آپدیت: 1401/10/05

در گذشته پایگاه داده‌ها به شکل سلسله مراتبی و یا شبکه‌ای وجود داشتند. اما امروزه پایگاه داده‌های رابطه‌ای SQL و NoSQL بیشتر مورد استفاده قرار می‌گیرند. شیوه دسترسی به اطلاعات موجود در این پایگاه داده‌ها براساس نوع آن‌ها متفاوت است. در یک پایگاه داده رابطه‌ای، داده‌ها در جداولی ذخیره می‌شوند که توسط مدل‌های رابطه‌ای باهم ارتباط دارند. از جمله دیتابیس‌های رابطه‌ای می‌توان MySQL را نام برد.
NoSQL که مخفف عبارت Not Only SQL DataBase است، نوعی از پایگاه داده‌ها است که در سطحی وسیع‌تر از پایگاه داده‌های SQL کار می‌کند و با مدل‌های مختلف داده‌ها مانند کلید – مقدار (Key-Value) سر و کار دارد. این پایگاه داده‌ها با مجموعه‌های عظیمی از داده‌های توزیع شده کار می‌کنند و جایگزینی برای دیتابیس‌های رابطه‌ای هستند که داده را در جدول ذخیره می‌کردند. مونگو دیبی (Mongo DB) یکی از معروف‌ترین پایگاه داده‌های No SQL است که ساختار منعطفی دارد و بیشتر در پروژه‌هایی با حجم بالای داده استفاده می‌شود. این دیتابیس پلتفرمی رایگان و متن باز است و از اسناد JSON مانند schemata استفاده می‌کند. MongoDB توسط MongoDB Inc توسعه یافته است و تحت مجوز ترکیبی از گواهینامه GNU Affero General Public و مجوز آپاچی منتشر شده است. این پایگاه داده با زبان‌های ++C و C و JavaScript نوشته شده است.

ویژگی‌های MongoDB

‌در ادامه به بررسی ویژگی‌های مهم این سرویس می‌پردازیم.

مقایس‌پذیری

MongoDB یک پایگاه داده NoSQL است که برای پردازش Big Data کاربرد فراوانی داشته و می‌تواند حجم زیادی از داده‌ها را ذخیره کند. مونگو دی‌بی ذاتا از مقیاس پذیری افقی پشتیبانی می‌کند، به طوری که داده‌ها می‌توانند در چند دیتابیس به صورت موازی توزیع پیدا کنند.

انعطاف‌پذیری

دیتابیس‌های رابطه‌ای دارای اسکیما (Schema) هستند. یعنی ساختار خاصی برای داده‌ها در نظر گرفته و مدل‌های محدودی را ذخیره می‌کنند. اما مونگو دیبی و به طور کلی دیتابیس‌های NoSQL در برابر پذیرش داده‌هایی با تنوع مختلف بسیار منعطف هستند و این مزیت مهمی برای برنامه‌نویسان محسوب می‌شود.

مقاوم در برابر خرابی

همانندسازی (Replication) یکی دیگر از خصوصیات مهم مونگو دیبی است. در این تکنیک از یک داده به عنوان داده اصلی کپی‌هایی تهیه شده و بخش‌های دیگری از سیستم پایگاه داده ذخیره می‌شود. در صورت از بین رفتن و یا مخدوش شدن این داده، داده‌های کپی شده به عنوان داده اصلی و جایگزین مورد استفاده قرار می‌گیرند.

عملکرد و سرعت بالا

داده‌ها با دو کلید اولیه و ثانویه قابل دسترسی هستند و هر فیلدی قابلیت کلید شدن را دارد. این امر زمان دسترسی و پردازش داده را بسیار سریع می‌کند.

ایجاد کاربر  Administrative

برای این منظور ابتدا با دستور زیر دسترسی شل دیتابیس mongo را بگیرید:

mongo

هنگامی که داخل پوسته MongoDB هستید دستور زیر را برای اتصال به ادمین پایگاه داده تایپ کنید:

use admin

دستور زیر را برای ایجاد یک کاربر جدید به نام mongoAdmin با نقش userAdminAnyDatabase و پسورد changeMe اجرا کنید:

db.createUser(
  {
user: “mongoAdmin”,
pwd: “changeMe”,
roles: [ { role: “userAdminAnyDatabase”, db: “admin” } ]
}
)

با دستور زیر از شل mongo خارج شوید:
()quit
برای آزمایش تغییرات، با استفاده از یوزری که ایجاد کرده‌اید، به شل mongo دسترسی پیدا کنید و دستورات زیر را وارد کنید:

mongo -u mongoAdmin -p –authenticationDatabase admin
use admin
show users

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