💾

مقدمه‌ای بر مبانی MongoDB

Oct 7, 2024

یادداشت‌های سخنرانی معرفی MongoDB

نمای کلی از MongoDB

  • MongoDB چیست؟
    • یک سیستم مدیریت پایگاه داده NoSQL
    • مدیریت حجم زیادی از داده‌ها
    • محبوب در میان شرکت‌های فناوری
  • تعریف NoSQL:
    • فقط SQL نیست
    • داده‌ها در فرمت‌های مختلف ذخیره می‌شوند، نه فقط جداول SQL سنتی
    • از اسناد به جای سطرها و ستون‌ها استفاده می‌کند

ساختار سند و مجموعه

  • سند:
    • گروهی از جفت‌های فیلد-مقدار که یک شیء را نشان می‌دهد (مشابه JSON)
  • مجموعه:
    • گروهی از یک یا چند سند
  • پایگاه داده:
    • گروهی از یک یا چند مجموعه

پیشنیازها

  • تجربه‌ی پایه در یک زبان برنامه‌نویسی شیءگرا (مثل Python، Java، C++، C#، JavaScript)

نصب MongoDB

  1. به mongodb.com مراجعه کنید
  2. به قسمت Resources > Server > Installation بروید
  3. نصب را بر اساس سیستم‌عامل خود انتخاب کنید (مثال Windows ارائه شده است)
  4. نسخه جامعه MongoDB و MongoDB Compass (رابط کاربری) را نصب کنید
  5. شل MongoDB (Mangosh) را راه‌اندازی کنید
  6. فایل اجرایی Mangosh را به متغیرهای محیطی سیستم اضافه کنید
  7. Visual Studio Code (VS Code) را با افزونه MongoDB راه‌اندازی کنید

مبانی شل MongoDB

  • برقراری اتصال:
    • استفاده از sh برای اتصال، CLS برای پاک کردن صفحه، exit برای قطع اتصال
  • ایجاد و استفاده از پایگاه‌های داده:
    • نمایش پایگاه‌های داده: show dbs
    • استفاده از پایگاه‌داده: use <dbname>
    • ایجاد یک پایگاه‌داده: use <newdbname>
    • ایجاد یک مجموعه: db.createCollection(<collectionName>)
    • حذف یک پایگاه‌داده: db.dropDatabase()

وارد کردن اسناد

  • وارد کردن یک سند:
    • استفاده از db.<collectionName>.insertOne({<document>})
  • وارد کردن چند سند:
    • db.<collectionName>.insertMany([{<doc1>}, {<doc2>}, ...])

انواع داده‌های پایه در MongoDB

  • رشته: متن داخل نقل قول‌ها
  • عدد صحیح: اعداد کامل
  • عدد اعشاری: اعداد با اعشار
  • بولی: مقادیر True/False
  • شیء تاریخ: زمان فعلی یا تاریخ مشخص
  • خالی: نشان‌دهنده هیچ مقداری نیست
  • آرایه‌ها: فیلد می‌تواند چندین مقدار داشته باشد
  • اسناد تو در تو: اسنادی درون اسناد

مرتب‌سازی و محدود کردن اسناد

  • مرتب‌سازی:
    • db.<collectionName>.find().sort({<field>: 1}) برای صعودی، -1 برای نزولی
  • محدود کردن:
    • db.<collectionName>.find().limit(<number>)

استفاده از متد Find

  • پیدا کردن پایه:
    • db.<collectionName>.find({<query>})
  • پروجکشن: مشخص کردن فیلدهای بازگشتی
    • مثال: db.<collectionName>.find({}, {name: 1, GPA: 1})

به‌روزرسانی اسناد

  • به‌روزرسانی یکی:
    • db.<collectionName>.updateOne({<filter>}, {$set: {<field>: <value>}})
  • به‌روزرسانی چند:
    • db.<collectionName>.updateMany({<filter>}, {$set: {<field>: <value>}})
  • حذف فیلدها:
    • db.<collectionName>.updateOne({<filter>}, {$unset: {<field>: 1}})

حذف اسناد

  • حذف یکی:
    • db.<collectionName>.deleteOne({<filter>})
  • حذف چند:
    • db.<collectionName>.deleteMany({<filter>})

عملگرهای مقایسه‌ای

  • عملگرهای پایه:
    • $eq, $ne, $gt, $gte, $lt, $lte برای مقایسه مقادیر
  • عملگرهای منطقی:
    • $and, $or, $nor, $not برای پرس‌وجوهای پیچیده

نماها در MongoDB

  • هدف نماها:
    • بازیابی سریع داده اما ممکن است عملیات نوشتن را کند کند
  • ایجاد نما:
    • db.<collectionName>.createIndex({<field>: 1})
  • حذف نما:
    • db.<collectionName>.dropIndex(<indexName>)

مجموعه‌ها در MongoDB

  • ایجاد مجموعه‌ها:
    • db.createCollection(<collectionName>, {options})
  • حذف مجموعه‌ها:
    • db.<collectionName>.drop()

نتیجه‌گیری

  • یک نمای کلی از MongoDB، عملیات آن و استفاده‌ی عملی آن را تکمیل کردیم.
  • تشویق به لایک کردن و مشترک شدن برای محتوای بیشتر.