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

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

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 را دریافت کنید (شکل۱).

برای مطالعه :   محبوب ترین بانکهای اطلاعاتی سال 2016

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

 

اگر هنگام نصب مانگو و مراجعه به سایت اصلی آن، با خطای تحریم ایران مواجه شدید نسخه ۳٫۴٫۴ ویندوزی آنرا از این آدرس می توانید دانلود نمائید.

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

 [cce_actionscript]C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe –dbpath=”d:\mongo\data”  –rest[/cce_actionscript]

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

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

[cce_actionscript] C:\Program Files\MongoDB\Server\3.4\bin>mongod.exe –dbpath=”d:\mongo\data” –rest
۲۰۱۷-۰۴-۲۸T15:29:10.958+0430 I CONTROL  [initandlisten] db version v3.4.4
۲۰۱۷-۰۴-۲۸T15:29:10.958+0430 I CONTROL  [initandlisten] git version: 888390515874a9debd1b6c5d36559ca86b44babd
۲۰۱۷-۰۴-۲۸T15:29:10.959+0430 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1u-fips  ۲۲ Sep 2016
۲۰۱۷-۰۴-۲۸T15:29:10.960+0430 I CONTROL  [initandlisten] allocator: tcmalloc
۲۰۱۷-۰۴-۲۸T15:29:10.960+0430 I CONTROL  [initandlisten] modules: none
۲۰۱۷-۰۴-۲۸T15:29:10.961+0430 I CONTROL  [initandlisten] build environment:
۲۰۱۷-۰۴-۲۸T15:29:10.962+0430 I CONTROL  [initandlisten]     distmod: 2008plus-ssl
۲۰۱۷-۰۴-۲۸T15:29:10.962+0430 I CONTROL  [initandlisten]     distarch: x86_64
۲۰۱۷-۰۴-۲۸T15:29:10.963+0430 I CONTROL  [initandlisten]     target_arch: x86_64
۲۰۱۷-۰۴-۲۸T15:29:10.965+0430 I CONTROL  [initandlisten] options: { storage: { dbPath: “d:\mongodata” } }
۲۰۱۷-۰۴-۲۸T15:29:10.969+0430 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=1484M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
۲۰۱۷-۰۴-۲۸T15:29:11.657+0430 I CONTROL  [initandlisten] ۲۰۱۷-۰۴-۲۸T15:29:11.658+0430 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
۲۰۱۷-۰۴-۲۸T15:29:11.661+0430 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
۲۰۱۷-۰۴-۲۸T15:29:11.662+0430 I CONTROL  [initandlisten] ۲۰۱۷-۰۴-۲۸T15:29:15.814+0430 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory ‘d:/mongodata/diagnostic.data’
۲۰۱۷-۰۴-۲۸T15:29:16.123+0430 I INDEX    [initandlisten] build index on: admin.system.version properties: { v: 2, key: { version: 1 }, name: “incompatible_with_version_32”, ns: “admin.system.version” }
۲۰۱۷-۰۴-۲۸T15:29:16.123+0430 I INDEX    [initandlisten]          building index using bulk method; build may temporarily use up to 500 megabytes of RAM
۲۰۱۷-۰۴-۲۸T15:29:16.137+0430 I INDEX    [initandlisten] build index done.  scanned 0 total records. 0 secs
۲۰۱۷-۰۴-۲۸T15:29:16.140+0430 I COMMAND  [initandlisten] setting featureCompatibilityVersion to 3.4
۲۰۱۷-۰۴-۲۸T15:29:16.142+0430 I NETWORK  [thread1] waiting for connections on port 27017[/cce_actionscript]

برای مطالعه :   Import.io + OpenRefine + Google Fusion Tables = یک مثال عملی جادویی

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

Mongo2

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

Mongo3

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

[cce_actionscript]{ “databases” : [
{ “name” : “local”,
“sizeOnDisk” : 83886080,
“empty” : false } ],
“totalSize” : 83886080,
“ok” : 1 }[/cce_actionscript]

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

[cce_actionscript] C:\mongodb\bin>mongod –install
C:\mongodb\bin>mongod –remove[/cce_actionscript]

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

[cce_actionscript]C:\mongodb\bin>mongod –install –logpath c:\mongodb\log.txt[/cce_actionscript]

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

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

۴ نظرات

  1. با سلام

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

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

  2. با سلام

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

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

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

    با تشکر

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

  3. سلام

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

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

پاسخ دهید

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

جای خالی در معادله زیر را با کی برد انگلیسی وارد کنید : * Time limit is exhausted. Please reload CAPTCHA.