خانه / NoSQL / بانکهای اطلاعاتی سندگرا / شروع کار با مانگو دی بی
Mongo

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

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

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

پایگاه داده‌ MongoDB را می‌توان جزء آن‌دسته از پایگاه‌های داده‌ای دانست که اغلب پلتفرم‌های مطرح دنیا را پشتیبانی کرده و برای نصب روی لینوکس، مکینتاش، ویندوز و سولاریس بسته‌های نصب ارائه می‌کند. اما از آنجا که قصد ما توسعه این پایگاه داده‌ها در محیط برنامه‌نویسی NET. است، روی بسته مختص ویندوز ۶۴ بیتی آن تمرکز می‌کنیم. اگرچه تمامی مواردی که در اینجا و در‌ مورد کار با این پایگاه داده‌ مطرح می‌شود، روی سایر پلتفرم‌ها مانند لینوکس نیز صادق خواهد بود.
اما پیش از ورود به بحث و کار عملی با MongoDB اگر همچنان در‌مورد دلایل پیشرفت چشم‌گیر پایگاه‌های داده‌ NoSQL در مراکز داده و برنامه‌های کاربردی تحت وب معروف تردید داشته یا علاقه دارید تا پیش از ادامه دادن بحث در‌مورد انواع پایگاه‌های داده NoSQL اطلاعات بیشتری کسب کنید، به شما پیشنهاد می‌کنیم تا ویژه‌نامه NoSQL ماهنامه‌شبکه (شماره ۱۳۳) را مطالعه کرده و تمامی اطلاعاتی را که لازم دارید، به‌دست آورید. اما به‌ ‌هر‌ترتیب، اگر اطلاعات گفته شده را دارید یا به‌دلیل این‌که سال‌ها با پایگاه‌های داده رابطه‌ای کار کرده‌اید، حوصله مطالعه آن را ندارید، تنها این نکته را در ذهن داشته باشید که برای کار‌کردن با پایگاه‌های داده NoSQL باید تمامی تصورات خود را از پایگاه‌های رابطه‌ای و دستورات SQL برای انجام پردازش روی داده‌ها را کنار بگذارید و به ابزارهای جدید فراهم شده برای این پایگاه‌های داده‌ای عادت کنید.
پیش از هرچیز لازم است تا پایگاه داده MongoDB را روی دستگاه خود نصب کنید. برای این‌کار به سایت رسمی این پایگاه‌ داده به آدرس mongodb.org مراجعه کرده و پس از مرور به بخش downloads، گزینه متناسب با پلتفرم مورد استفاده خود را – که برای ما ویندوز ۶۴ بیتی است – انتخاب کنید. همیشه آخرین نگارش توصیه شده توسط این پایگاه داده را انتخاب کنید تا به بیشترین ویژگی‌ها با کمترین میزان اشکال و باگ دست بیابید. تنها نکته‌ای که در اینجا باید به آن اشاره داشت آن است که در ستون ویندوز ۶۴ بیتی دو گزینه download و +۲۰۰۸R2* وجود دارد که گزینه دوم برای نصب روی Windows Server 2008 R2 طراحی شده و تنها در صورتی که از این سیستم عامل استفاده می‌کنید، این پکیج را بارگذاری کرده و در غیر‌این‌صورت پکیج موجود در لینک download را دریافت کنید (شکل۱).

Mongo1

نصب MongoDB بسیار آسان است. در واقع تنها کاری که لازم است انجام دهید، خارج کردن محتویات درون فایل بارگذاری شده و ایجاد چند پوشه جداگانه برای نگه‌داری داده‌های آن است. به‌عبارت دیگر اگر شما نیز بسته mongodb-win32-x86_64-2.4.5.zip را بارگذاری کرده باشید، می‌توانید در ریشه درایو C خود یک پوشه با نام mongodb ایجاد کرده و محتویات درون فایل فشرده را بدون ایجاد یک زیر پوشه با نام mongodb-win32-x86_64-2.4.5 درون پوشه mongodb قرار دهید. با این کار، از طریق هر ابزار دیگری، کافی است تا مسیر C:\mongodb\bin را بپیمایید تا به فایل اجرایی mongod.exe برسید که در واقع قلب پایگاه داده MongoDB را تشکیل می‌دهد.
این پایگاه داده همچنین به‌صورت پیش‌فرض مسیر C:\data\db را برای نگه‌داری فایل‌های داده‌ای ساخته شده مورد استفاده قرار می‌دهد. بنابراین، اگر قصد استفاده از این پایگاه داده بدون افزودن تنظیمات دیگری داشته باشید لازم است تا دو پوشه C:\data و C:\data\db را به‌صورت دستی بسازید. پس از آن تنها کافی است تا از طریق command prompt به آدرس C:\mongodb\bin رفته و mongod.exe را اجرا کنید.

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
C:\mongodb\bin>mongod
mongod --help for help and startup options
Thu Feb 28 14:41:12 [initandlisten] MongoDB starting : pid=2076 port=27017
dbpath=\data\db\ 64-bit host=sobhanattar
Thu Jul 13 14:41:12 [initandlisten] db version v2.4.5
Thu Jul 13 14:41:12 [initandlisten] git version:
f570771a5d8a3846eb7586eaffcf4c2f4a96bf08
Thu Jul 13 14:41:12 [initandlisten] build info: windows sys.getwindowsversion
(major=6, minor=1, build=7601, platform=2, service_pack='Service Pack 1')
BOOST_LIB_VERSION=1_49
Thu Jul 13 14:41:12 [initandlisten] options: {}
Thu Jul 13 14:41:12 [initandlisten] journal dir=/data/db/journal
Thu Jul 13 14:41:12 [initandlisten] recover : no journal files present, no recovery needed
Thu Jul 13 14:41:12 [websvr] admin web console waiting for connections on port 28017
Thu Jul 13 14:41:12 [initandlisten] waiting for connections on port 27017

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

Mongo2

اگر عجله کردید و پیش از مطالعه بقیه بخش‌های این مقاله روی هریک از دستورات موجود در بالای صفحه کلیک کرده‌اید، به‌احتمال فراوان با پیغام زیر مواجه می‌شوید:

1
REST is not enabled.  use --rest to turn on.

زیرا برای آن‌که این دستورات بتوانند کار کنند، لازم است تا MongoDB متوقف شده و دوباره دستور mongod.exe با گزینه rest– اجرا شود:

1
C:\mongodb\bin>mongod --rest

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

Mongo3

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

1
2
3
4
5
6
{ "databases" : [
{ "name" : "local",
"sizeOnDisk" : 83886080,
"empty" : false } ],
"totalSize" : 83886080,
"ok" : 1 }

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

1
2
C:\mongodb\bin>mongod --install
C:\mongodb\bin>mongod --remove

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

1
C:\mongodb\bin>mongod --install --logpath c:\mongodb\log.txt

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

۳ نظرات

  1. با سلام

    ممنونم بابت تمام پست های مربوط به بحث مانگو…

    خیلی خوب و مفید بود.

  2. با سلام

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

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

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

    با تشکر

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

پاسخ دهید

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

Time limit is exhausted. Please reload CAPTCHA.