بانکهای اطلاعاتی سندگرا

شروع کار با مانگو دی بی

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

نصب MongoDB در ویندوز

پایگاه داده‌ MongoDB را می‌توان جزء آن‌دسته از پایگاه‌های داده‌ای دانست که اغلب پلتفرم‌های مطرح دنیا را پشتیبانی کرده و برای نصب روی لینوکس، مکینتاش، ویندوز و سولاریس بسته‌های نصب ارائه می‌کند. اما از آنجا که قصد ما توسعه این پایگاه داده‌ها در محیط برنامه‌نویسی NET. است، روی بسته مختص ویندوز ۶۴ بیتی آن تمرکز می‌کنیم. اگرچه تمامی مواردی که در اینجا و در‌ مورد کار با این پایگاه داده‌ مطرح می‌شود، روی سایر پلتفرم‌ها مانند لینوکس نیز صادق خواهد بود.
اما پیش از ورود به بحث و کار عملی با MongoDB اگر همچنان در‌مورد دلایل پیشرفت چشم‌گیر پایگاه‌های داده‌ NoSQL در مراکز داده و برنامه‌های کاربردی تحت وب معروف تردید داشته یا علاقه دارید تا پیش از ادامه دادن بحث در‌مورد انواع پایگاه‌های داده NoSQL اطلاعات بیشتری کسب کنید، به شما پیشنهاد می‌کنیم تا ویژه‌نامه NoSQL ماهنامه‌شبکه (شماره ۱۳۳) را مطالعه کرده و تمامی اطلاعاتی را که لازم دارید، به‌دست آورید. اما به‌ ‌هر‌ترتیب، اگر اطلاعات گفته شده را دارید یا به‌دلیل این‌که سال‌ها با پایگاه‌های داده رابطه‌ای کار کرده‌اید، حوصله مطالعه آن را ندارید، تنها این نکته را در ذهن داشته باشید که برای کار‌کردن با پایگاه‌های داده NoSQL باید تمامی تصورات خود را از پایگاه‌های رابطه‌ای و دستورات SQL برای انجام پردازش روی داده‌ها را کنار بگذارید و به ابزارهای جدید فراهم شده برای این پایگاه‌های داده‌ای عادت کنید.
پیش از هرچیز لازم است تا پایگاه داده MongoDB را روی دستگاه خود نصب کنید. برای این‌کار به سایت رسمی این پایگاه‌ داده به آدرس mongodb.com مراجعه کرده و از منوی Products‌ گزینه MongoDB Server‌را مطابق زیر انتخاب کنید :

با این کار به صفحه دانلود مانگو‌دی‌بی هدایت می‌شوید (در حال حاضر نسخه ۴ مانگو قابل دانلود است) :

در مرحله بعد به شما پیشنهاد میکند که از نسخه تحت وب آن استفاده کنید که شما این قسمت را بی‌خیال شده و وارد تب یا زبانه erver شوید و با انتخاب سیستم عامل، دکمه دانلود نهایی را بزنید و منتظر بارگذاری شدن آن روی سیستم خودتان باشید.

نصب و راه‌اندازی مانگودی‌بی

نصب MongoDB بسیار آسان است. کافیست نسخه اجرایی آنرا که از سایت مانگو دانلود کرده‌اید، اجرا کنید تا فرآیند نصب به صورت ویزاردی (پنجره به پنجره) آغاز شود. هنگام نصب، پنجره ویزارد نصب، از شما مکان نصب  را سوال خواهد کرد (البته اگر نوع نصب را به جای complete نوع Custom انتخاب کنید).

در پنجره سوم از شما نوع نصب را می پرسد که بهتر است گزینه سفارشی را انتخاب کنید :

به صورت پیش فرض، مانگو در آدرس C:\Program Files\MongoDB\Server\4.0\ نصب خواهد شد. بعد از این مرحله یک پوشه برای ذخیره داده های مانگو باید ایجاد کنید. فرض کنید این پوشه را در درایو D و در آدرس D:\mongo\data ایجاد کرده اید. حال برای اجرای مانگو، کافیست وارد پوشه bin آن شده و سپس با گرفتن دکمه Shift و کلیک راست روی فضای خالی پوشه، گزینه Open Command Window Here   را بزنید تا وارد خط فرمان ویندوز در همین پوشه شوید. اکنون دستور زیر را تایپ کنید :

Shell

دقت کنید که آدرس پوشه داده را دقیقاً به صورت فوق و بدون بک اسلش انتهای آدرس، وارد کنید. پارامتر rest برای مشاهده بخش مدیریت مانگو مورد نیاز خواهد بود و گرنه روی پورت ۲۸۰۱۷ ممکن است نتوانید بخش مدیریت مانگو را مشاهده کنید.

پس از آن‌که برای نخستین‌بار mongod.exe را اجرا کردید،‌ به‌احتمال فراوان با هشدار دیوار آتش یا Firewall سیستم‌عامل مواجه خواهید شد. چرا‌که این برنامه روی دو درگاه ۲۷۰۱۷ و ۲۸۰۱۷ فعالیت کرده و نیاز است تا شما اجازه ارسال و دریافت اطلاعات به این برنامه را با انتخاب گزینه شبکه‌های خصوصی (Private Networks) شبکه خانگی (Home Network) یا شبکه کار (Work Network) را بدهید. البته، چنان‌چه از دیوار آتشی به‌غیر از برنامه پیش‌فرض ویندوز استفاده می‌کنید، لازم است تا به تناسب برنامه مورد استفاده، اجازه دسترسی به این درگاه‌ها را به این برنامه بدهید. پس از اجرای mongod.exe اطلاعات فهرست۱ نمایان می‌شود:

Shell

مشاهده پیغام “waiting for connections on port 27017” به‌معنای اجرای موفقیت‌آمیز هسته MongoDB است و شما می‌توانید کار خود را با این پایگاه داده آغاز کنید. توجه کنید که دو درگاه ۲۷۰۱۷ و ۲۸۰۱۷ برای دو مقصود متفاوت مورد استفاده قرار می‌گیرند. به‌عبارت دیگر، MongoDB روی درگاه ۲۷۰۱۷ آماده دریافت اتصال از طریق برنامه‌های مختلف و از درگاه ۲۸۰۱۷ آماده ورود به درگاه مدیریت پایگاه داده است. بنابراین، کافی است تا آدرس http://localhost:28017 را در مرورگر خود تایپ کنید تا پس از فشردن دکمه ورود به صفحه مدیریت پایگاه وارد شوید. در این صفحه دستورات مختلفی برای مدیریت MongoDB از جمله ListDatabases قابل مشاهده است (شکل۲).

Mongo2

پس از گذراندن این مراحل و ورود دوباره به صفحه مدیریت پایگاه داده MongoDB با مرور به http://localhost:28017، قادر خواهید بود تا روی هر یک از دستورات موجود در بالای صفحه مانند listDatabases کلیک‌کرده و نتیجه آن را در قالب یک خروجی JSON مشاهده کنید (شکل۳).

Mongo3

باید از همین حالا به این موضوع عادت کنید. خروجی تمامی دستورات MongoDB در قالب JSON و در صفحه مرورگر به شما ارائه شده و بنابراین، اگر با خواندن این قالب آشنایی ندارید، بد نیست سری به اين سایت یا نسخه فارسی آن بزنید. خروجی زیر، نتیجه ارائه شده در قالب JSON برای یک پایگاه داده خالی موجود روی سرور محلی شما است:

JS

مانند هر پایگاه داده دیگر این امکان وجود دارد تا شما mongod.exe را در قالب یک سرویس خودراه‌انداز (Automatic) به سیستم معرفی کنید تا هربار مجبور به راه‌اندازی دوباره آن نباشید. برای این کار تنها کافی است تا از command prompt دستور mongod را با گزینه –install اجرا کنید. با این‌کار شما راه‌انداز MongoDB را به‌عنوان یک سرویس ویندوزی ثبت کرده‌اید. همچنین با استفاده از گزینه –remove می‌توانید این فرآیند را در هر زمان لغو کنید:

Shell

ذکر این نکته ضروری است که برای ثبت MongoDB به‌عنوان یک سرویس لازم است تا بعد از گزینه –install از گزینه –logpath نیز استفاده کنید. شکل کلی دستور به‌صورت زیر خواهد بود:

Shell

در این دستور، فایل log.txt می‌تواند در هر آدرسی و با هر نامی قرار گیرد. در صورت نیاز، می‌توانید لیست کامل گزینه‌های قابل استفاده را در مستندات MongoDB در اين آدرس مشاهده کنید.

توصیه : برای کار با مانگو بعد از اجرای ان روی پورت ۲۷۰۱۷، می توانید از نرم افزارهای متنوع گرافیکی مانند RoboMongo یا Mongo Management Studio یا سایر محیطهای گرافیکی استفاده کنید و دستورات ادامه کار را در یک محیط گرافیکی کارکنید. البته خود نرم‌افزار MongoDB Compass که امروزه در سایت رسمی خود مانگو در بخش محصولات قابل دانلود است، این وظیفه را به خوبی انجام میدهد و می‌توانید با همین ابزار رسمی گرافیکی مانگو کار کنید.

نمونه ای از محیط گرافیکی MongoDB Compass‌ را در زیر مشاهده می‌کنید :

1 2 3برگه بعد
برچسب ها
مشاهده بیشتر

مجتبی بنائی

مدرس دانشگاه، فعال در حوزه مهندسی‌ نرم‌افزار و علم داده که تمرکز کاری خود را در چند سال اخیر بر روی مطالعه و تحقیق در حوزه کلان‌داده و تولید محتوای تخصصی و کاربردی به زبان فارسی و انتشار آنها در سایت مهندسی داده گذاشته است.

۸ دیدگاه

  1. با سلام

    بسیار ممنونم بابت مطلب جامع و کاربردی که در زمینه مانگو منتشر کردید. من تجربه کار با پایگاه داده های غیر رابطه ای رو نداشتم ولی اخیرا پروژه ای بهم پیشنهاد شده که در آن مجبورم تقریبا هر ۵ دقیقه یکبار حدود ۱۰۰۰ تا فایل اکسل رو که از نظر ساختار شبیه هم نبوده ولی فیلدهایی دارند که در تمامی آنها مشترک هستند رو خونده و در پایگاه داده ذخیره کرده و در نهایت بتونم براساس فیلدهای مشترک روی همه اونها در بازه های زمانی مختلف کوئری بزنم. راستش دارم تحقیق می کنم ببینم چه نوع پایگاه داده ای همچین قابلیتی رو بهتر بهم میده.

    به نظر شما مانگو جوابگوی این مدل داده ها هست؟

    ممنون میشم اگر در این زمینه بهم کمک کنید.

    با تشکر

    1. سلام بنیامین عزیز …
      خوشحالم که مطالب سایت براتون مفید بوده .
      اگر هر پنج دقیقه یک بار قراره داده های غیرهمگنی به تعداد هزار فایل را در درازمدت بخونید، توصیه بنده استفاده از الاستیک سرچه که همه جور کوئری را با سرعتی بسیار بالا جواب میده. فرمت ذخیره اون هم جی سان هستش و مقیاس پذیری عالی ای داره .
      موفق باشید .

  2. سلام

    برنامه ای دارم که در آن با ید درهر ۳۰ ثانیه باید مختصات ۲۰۰۰۰ نقطه را روی نقشه نگهداری نماید و در صورت نیاز مختصات بک نقطه را که میدهم باید آبجکتهای نزدیک به آن نقطه را تا فاصله ۵ کیلومتری روی نقشه به من نشان دهد از چه دیتابیسی استفاده کنم بهتره ؟

    مهندسی داده :
    برای کار با داده های جی آی اس ، از PostGIS‌ استفاده کنید که هم مجموعه قابلیتهای کاملی در حوزه داده های جغرافیایی و مکانی داره و هم از دیتابیس قدرتمند پستگرس استفاده می کند.

    1. درود بر سعید عزیز .
      توی سایت خود مانگو و در بخش دانلود، تفاوت های این دو نسخه یعنی نسخه سازمانی و نسخه رایگان ذکر شده . اگر توی مطالب اون بخش، مشکلی داشتید بفرمایید تا توضیح داده بشه .
      موفق باشید .

  3. من این پیام رو بعد از پیغام “waiting for connections on port 27017” دارم لطفا راهنمایی کنید:

    A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. 127.0.0.1:55824

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

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

دکمه بازگشت به بالا
بستن
بستن