MongoDB بهجرئت یکی از محبوبترین و شناختهشدهترین پایگاههای دادهای است که بهصورت NoSQL طراحی شده و دنیای منابع ذخیرهسازی و بازیابی اطلاعات را دگرگون ساخته است. این پلتفرم در حال حاضر بهعنوان یک جایگزین برای پایگاههای داده سنتی بهحساب میآید، سرعت عمل، ایمنی و دقت در ارسال و دریافت دادهها از جمله اصلیترین مزیتهایی است که در این دیتابیس دیده میشود.
پایگاههای داده NoSQL بخصوص برای کار با پایگاههای داده بزرگ بسیار مناسب و محبوب هستند. چون تفکیکپذیری در آنها بسیار عالی است، در نتیجه دچار کمترین ایراد شده و از طرفی نگهداری اطلاعات در آنها بسیار بهتر انجام میشود. همینطور پایگاهداده مانگو دی بی از اشکال مختلف داده پشتیبانی میکند. این سیستم یکی از محبوبترین و مهمترین فناوریهای غیررابطهای را در خود جایداده است. در اواسط 2000 میلادی بود که بر مبنای این که NoSQL است به وجود آمد. این پایگاهداده همینطور بهجای استفاده از جدولها و ردیفها از اسناد و مجموعههای بههمپیوسته استفاده میکند. سازمانها میتوانند از مزیت ویژه آن برای ارسالهای موقت، تعادل بار، تجمیع دادهها و اجرای جاوا اسکریپتها در سمت سرور استفاده کنند.
MongoDB دادهها را در اسناد JSON مانند ذخیره میکند که پایگاهداده را بسیار انعطافپذیر و مقیاسپذیر میکند.
برای اینکه بتوانید نمونههای کد موجود در این آموزش را آزمایش کنید، باید به پایگاهداده مانگو دی بی دسترسی داشته باشید.
اهمیت انتخاب پایگاهداده استاندارد
انتخاب پایگاهداده نقش مهمی در توسعه کلی محصول دارد. اینکه چگونه یکپارچه میتوانید ویرایش، بهروزرسانی، بازیابی یا حذف کنید به پایگاه دادهای که انتخاب میکنید بستگی دارد. از بین دو نوع پایگاهداده – پایگاهدادههای غیررابطهای و رابطهای، شما باید بهترین تناسب را بر اساس نیازهای فردی خود انتخاب کنید. احتمالاً درباره پرتقاضاترین پایگاهداده مانگو دی بی که یک NoSQL و یک پایگاهداده اسناد بسیار محبوب است، شنیدهاید. در این مقاله سعی داریم به دلایل افزایش محبوبیت MongoDB بپردازیم.
MongoDB، یک پایگاهداده NoSQL مبتنی بر سند، یک پایگاهداده بدون طرحواره با ویژگیهای قانعکننده و ویژگیهای برجسته است که به کاربران اجازه میدهد تا دادهها را به سادهترین و با فناوری ترین روش جستجو کنند. پایگاه دادهای که با ذخیرهسازی به سبک JSON پشتیبانی میشود، کاربران را قادر میسازد تا دادهها را بدون دردسر دستکاری کرده و به آنها دسترسی داشته باشند.
با بیش از 15 میلیون دانلود، MongoDB به محبوبترین پایگاهداده تبدیل شده است و توسط برنامهنویسان در سراسر جهان استفاده میشود. برای دانستن بیشتر در مورد MongoDB، مزایای آن، چرایی استفاده از آن، و مکانهایی که میتوان از آن استفاده کرد، به خواندن ادامه دهید.
PyMongo چیست؟
پایتون برای دسترسی به پایگاهداده MongoDB به درایور MongoDB نیاز دارد. در این آموزش از درایور MongoDB “PyMongo” استفاده خواهیم کرد. توصیه میکنیم برای نصب “PyMongo” از PIP استفاده کنید.
PIP بهاحتمال زیاد قبلاً در محیط پایتون شما نصب شده است. PyMongo یک توزیع پایتون است که حاوی ابزارهایی برای کار با MongoDB است و روش توصیه شده برای کار با مانگو دی بی از پایتون است. این مستند تلاش میکند هرآنچه را که برای استفاده از PyMongo باید بدانید را توضیح دهد. توزیع PyMongo شامل ابزارهایی برای تعامل با پایگاهداده مانگو دی بی از پایتون است. بسته bson پیادهسازی فرمت BSON برای پایتون است. بسته pymongo یک درایور بومی پایتون برای MongoDB است. بسته gridfs یک پیادهسازی gridfs در بالای pymongo است.
MongoDB همچنین دارای خط لوله تجمیع و پشتیبانی برای کاهش نقشه است که نیاز به خطوط لوله داده پیچیده را از بین میبرد. PyMongo یک کتابخانه Python است که شامل ابزارهایی برای تعامل با پایگاهداده MongoDB است. به همین دلیل استفاده از این پایگاهداده بهعنوان منبع ذخیره و بازیابی اطلاعات در پایتون بسیار رواج دارد و پایتونیها بهشدت به آن علاقهمند هستند.
مزایای MongoDB نسبت به RDBMS
یکی از مهمترین نکات در مورد انتخاب یک پایگاهداده، توجه به جزئیات و همینطور امکان تفکیکپذیری و مقیاسپذیری آن است. درصورتیکه بتوانید بهخوبی دادهها را در یک پایگاهداده فراخوانی، ذخیره و بازیابی و همینطور ایمنسازی کنید، به طبع گزینه قابلاطمینانی خواهد بود. علاوهبرآن فاکتورهای زیادی وجود دارد که میتواند سبب شود MongoDB دقیقاً همان چیزی باشد که این روزها، برنامهنویسان درگیر آن هستند و میتوانند به آن تکیه کنند.
پایگاهدادههای MongoDB NoSQL و پایگاههای داده رابطهای از بسیاری جهات متفاوت هستند. MongoDB نهتنها برای استفاده آسان است، بلکه از گزینههای مقیاسبندی عالی نیز پشتیبانی میکند. علاوه بر این، قابلیتهای عملکرد MongoDB در مقایسه با سایر پایگاههای داده بینظیر است.
ویژگیهای منحصربهفرد و بینظیر دیگری و عملکردهای داخلی وجود دارد که MongoDB را به بهترین انتخاب در بین توسعهدهندگان تبدیل میکند. اجازه دهید نگاهی به برخی از مزایای استفاده از مانگو دی بی نسبت به RDBMS بیندازیم.
- رمزگذاری مولتی کلاد سمت کلاینت
- بهاشتراکگذاری زنده پایگاههای داده
- پلتفرم سری زمانی بومی با توابع ویندوز و نمایهسازی خوشهای
- یک API پایدار که ارتقاء به آخرین نسخه را بدون تأثیر بر پایگاه کد شما آسان میکند
- راهحل جستجوی متن کامل Atlas Search
از جمله اصلیترین و کلیدیترین امتیازاتی است که در درجه اول باعث میشود این پایگاهداده روی لینوکس نیز بسیار محبوب باشد. البته در ادامه این بررسی و مقایسه مزیت را با عمومیت بیشتر برای پایگاهداده مانگو انجام خواهیم داد. مسئله مهم دیگری که باید در مورد این پایگاهداده بدانید این است که مقیاسپذیری در آن بزرگترین مزیتی است که میتواند استارتاپها را در توسعه یاری کند. بخصوص استارتاپهایی که امکان پرداخت هزینههای گزاف را ندارند، میتوانند به سراغ آن بروند.
چه چیزی باعث میشود MongoDB اینقدر مورد تقاضا باشد؟
این سوال مطرح میشود که چرا این پایگاهداده با وجود گزینههای دیگر در بین طراحان وب، توسعهدهندگان نرمافزار و برنامهنویسان محبوب است، جامعه آماری و مدیران پروژه چه علاقهای به استفاده از آن دارند؟ در چنین شرایطی به طبع مزیتهای مانگو دی بی میتواند جز دلایل قانعکنندهای باشد که شما هم در انتخاب آن از تردید بهیقین برسید.
آیا میدانید چرا MongoDB به یک انتخاب محبوب و ترند در بین توسعهدهندگان تبدیل شده است؟ قابلیتهای عالی آن در زیر ذکر شده است:
طرحوارههای اسناد انعطافپذیر
با استفاده از پایگاهدادههای زبان پرسوجو ساختاریافته، هر بار که تلاشی برای درج اطلاعات صورت میگیرد، اعلام و تأیید یک طرح جدول ضروری است. مانگو دی بی بهعنوان یک پایگاهداده اسناد، اسناد مختلف را در یک مجموعه واحد نگهداری میکند. به زبان ساده، MongoDB اجازه میدهد تا چندین شی را بهصورت یکپارچه، با مجموعهای متفاوت از فیلدها ذخیره کنید. طرحوارههای اسناد انعطافپذیر هنگام کار بر روی دادههای پیچیده یا مدیریت دادههای بلادرنگ مزایای بزرگی را ارائه میدهند.
دسترسی به دادههای بومی کد
دریافت دادهها در Object اغلب آسان نیست. در بیشتر پایگاههای داده، احتمالاً باید از Object Relational Mappers برای انجام این کار استفاده کنید. MongoDB شما را از استفاده از wrapperهای سنگین نجات میدهد و به شما امکان میدهد دادهها را به سادهترین روش ذخیره کرده و به آنها دسترسی داشته باشید. به زبان ساده، میتوانید از هر زبان برنامهنویسی مانند دیکشنریها در پایتون، آرایههای انجمنی در جاوا اسکریپت و نقشهها در جاوا، به دادههای کد بومی دسترسی داشته باشید.
طراحی سازگار با تغییر
بسیاری از برنامهنویسان عادت دارند که سایت یا برنامه را برای شخصیسازی دادهها از بین ببرند. با مانگو دی بی ، نیازی به پایین آوردن سایت نیست؛ زیرا تغییرات یا سفارشیسازیهای ارائه شده با استفاده از پایگاه داده مانگو دی بی چشمگیر هستند. هر زمان که نیاز به تغییر طرحواره داشته باشید، نیازی به ازدستدادن زمان خرابی ارزشمند نخواهید داشت. مانگو دی بی به کاربران اجازه میدهد تا دادههای جدید را در هر زمان و هر مکان اضافه کنند. بدون هیچگونه اختلال در فرایندهای عملیاتی آن.
پرسوجو و تجزیهوتحلیل قدرتمند
این واقعیت که هیچ پیوند پیچیده در پایگاه داده مانگو دی بی وجود ندارد نیز مزیت بزرگی را به همراه دارد. این بدان معناست که مانگو دی بی امکان دسترسی به دادهها را بدون نیاز به اتصال فراهم میکند. مانگو دی بی میداند که چگونه در هنگام انجام پرسوجو به اسناد دسترسی پیدا کند. زبان پرسوجو MongoDB (MQL) از پرسوجوهای پویا قدرتمند در اسناد پشتیبانی میکند که پرسوجوهای عمیق را تسهیل میکند. مهمتر از همه، پایگاهداده اسناد امکان دسترسی به دادههای پیچیده را بهسادگی با استفاده از یک خط کد JSON مانند میدهد.
مقیاس افقی آسان
MongoDB مقیاس افقی را با کمک بهاشتراکگذاری پایگاهداده تسهیل میکند. ازآنجاییکه دادهها بهصورت افقی ساخته شدهاند، پخش آن در سرورهای مختلف و دسترسی به آنها به روشی ساده آسان میشود. میتوانید با استفاده از تکرارهای بلادرنگ و دادههای با حجم بالا برای حفظ عملکرد، خوشههایی ایجاد کنید.
از پتانسیل اشتراکگذاری پایگاهداده برای توزیع پایگاهداده به چندین خوشه استفاده کنید. با بهاشتراکگذاری پایگاهداده، ظرفیت ذخیرهسازی افزایشیافته و همچنین سرعت پاسخ پرسوجو افزایش مییابد.
دلیل حضور مستمر مانگو دی بی در لینوکس
مهمترین مزیتی که در پایگاهداده MongoDB وجود دارد این است که هماهنگی و ساختار پذیری فوقالعادهای با پایتون دارد. پایتون یکی از محبوبترین زبانهای برنامهنویسی جهان امروز است که در دنیای علم هم قابلاستفاده است. علاوهبرآن، به دلیل ساختار کراس پلتفرم، میتواند گستره وسیعی از پروژهها را برای شما بهراحتی تبدیل به یک فایل اجرایی کند. از وب گرفته تا تولید انواع نرمافزارهای موبایل با آن امکانپذیر است.
MongoDB بر اساس یک مدل کلاینت، سرور ساختاریافته است که در آن یک سرور اتصالات کلاینت را میپذیرد و اقدامات پایگاهداده را از آنها پردازش میکند. سرور باید برای اتصال و تعامل کلاینتها با پایگاههای داده اجرا شود. ذخیرهسازی داده تحت مانگو دی بی با پایگاهدادههای سنتی متفاوت است.
چرا از MongoDB استفاده کنیم؟
اکنون که تفاوتهای اصلی بین پایگاههای داده MongoDB و NoSQL را مشاهده کردید، ممکن است مزایای استفاده از مانگو دی بی را درک کرده باشید. در اینجا چند دلیل قانعکننده برای استفاده از MongoDB نسبت به پایگاهدادههای دیگر آورده شده است.
همهکاره
ازآنجاییکه یک زبان پرسوجو بدون ساختار است، نیازی به ایجاد جداول در هنگام کار با MongoDB نیست. در نتیجه، درجه قابلتوجهی از تطبیقپذیری در ذخیرهسازی، مدیریت و دسترسی به دادهها وجود دارد. تطبیقپذیری مزیت بزرگی را هنگام ذخیره دادههای بزرگ و دستهبندی نشده اضافه میکند.
سرعت چشمگیر
یکی از دلایل تقاضای زیاد برای MongoDB سرعت آن است. ازآنجاییکه نیازی به ایجاد جدول یا طرحواره نیست، سرعت پایگاهداده چشمگیر است. با استفاده از مانگو دی بی ، سرعت CRUD (ایجاد، خواندن، بهروزرسانی، حذف) سریعتر از سایر پایگاههای داده است. پرسوجوی MongoDB 100 برابر سریعتر است و به کاربران این امکان را میدهد که جستجوی خود را در سریعترین زمان نمایه کنند.
بهراحتی در دسترس
دلیل دیگری برای استفاده از MongoDB این است که تقریباً از تمام زبانهای برنامهنویسی اصلی C، C++، C#، Java، Node.js، Perl، PHP، Python، Ruby، Scala و بسیاری دیگر پشتیبانی میکند. همچنین، MongoDB دارای درایورهای عالی با پشتیبانی از جامعه برای زبانهای برنامهنویسی کم محبوب است. همچنین میتوانید پایگاه داده مانگو دی بی را در سرویس ابری آن، MongoDB Atlas میزبانی کنید، که هم یک منبعباز مبتنی بر جامعه و هم یک نسخه Enterprise ممتاز را ارائه میکند.
آسان برای استفاده در توسعه
اگر شما یک توسعهدهنده جاوا اسکریپت باشید، عاشق پایگاهداده اسناد خواهید شد. MongoDB. در مقایسه با سایر پایگاههای داده، پایگاه داده مانگو دی بی برای استفاده آسان است. حتی یک تازهکار میتواند پایگاهداده را درک کند و بدون هیچ مشکلی از آن به طور مؤثر استفاده کند. همانطور که MongoDB هر رکورد را در باینری JSON ذخیره میکند، استفاده از پایگاهداده بسیار آسان میشود، بهخصوص اگر از کتابخانههای جاوا اسکریپت مانند Node.js، React یا Express.js در توسعه سمت سرور استفاده میکنید.
کجا از پایگاهداده MongoDB استفاده کنیم؟
MongoDB یک انتخاب عالی برای برنامههای کاربردی وب است که در آن تعامل کمی با کاربر وجود دارد. برخلاف یک پایگاهداده رابطهای که در آن نیاز به ذخیره اطلاعات در چندین جدول یا حتی ایجاد پیوندها وجود دارد، MongoDB وظایف اضافی را ذخیره میکند و آن را به طور ضمنی انجام میدهد. با استفاده از MongoDB میتوانید اطلاعات کاربر را به یکپارچهترین شکل ذخیره کنید. در نتیجه، یک پرسوجو برای یک مجموعه واحد وجود خواهد داشت و بخش جلویی میتواند با ویرایش دادهها سروکار داشته باشد.
یکپارچهسازی کلانداده
اگر کسبوکار شما شامل مجموعهای از دادههای دریافتی از منابع مختلف است، MongoDB بسیار مفید خواهد بود. هنگامی که دیگر پایگاههای داده با شکست مواجه میشوند، پایگاه داده مانگو دی بی با قابلیتهای منحصربهفردی برای ذخیره و ادغام کلاندادهها بهصورت یکپارچه ارائه میشود. پایگاهداده یک سند قابلیتهای قوی برای ذخیره حجم زیادی از دادههای متنوع را به سادهترین روش فراهم میکند.
تعریف دادههای پیچیده
MongoDB به اسناد جاسازی شده (که به آنها اسناد تودرتو نیز گفته میشود) اجازه میدهد تا ساختارهای تودرتو را تعریف کنند. اسناد تودرتو اسنادی هستند که در آنها یک سند در یک سند وجود دارد. زمانی که یک رابطه یک به چند بین اسناد وجود داشته باشد مفید است. بهتر از همه، MongoDB از فرمتهای دادههای تخصصی مانند فرمت جغرافیایی پشتیبانی میکند که منجر به یک مخزن انعطافپذیر میشود که حتی پس از ویرایشها نیز بدون شکست باقی میماند.
به طور خلاصه، میتوانید از MongoDB برای موارد زیر استفاده کنید:
- وبلاگ و مدیریت محتوا
- کاتالوگ محصولات تجارت الکترونیک
- مدیریت دادههای کاربر
- برای تجزیهوتحلیل بلادرنگ و ثبت با سرعت بالا و مقیاسپذیری بالا
- مدیریت پیکربندی
- برای نگهداری دادههای جغرافیایی
- موبایل و سایتهای شبکههای اجتماعی
توجه: توجه به این نکته مهم است که MongoDB برای یک سیستم تراکنشی قوی یا مکانهایی که مدل داده در آن پیشرو است، انتخاب مناسبی نیست. همچنین، استفاده از MongoDB برای سیستمهایی که با هم Pair شدهاند، تصمیم ضعیفی است. شاید زبان پرسوجو ساختاریافته مناسب باشد!
همین طور بخوانید: متا کلود چیست؟ چه کاربردی دارد؟
نحوه نصب و شروع استفاده از MongoDB در اوبونتو
MongoDB را نصب کنید
اولین قدم نصب بستههای پیشنیاز موردنیاز در هنگام نصب است. برای این کار دستور زیر را اجرا کنید.
sudo apt install -y software-properties-common gnupg apt-transport-https ca-certificates
مخازن رسمی اوبونتو بسته مانگو دی بی را ارائه میدهند که میتواند در یک دستور با استفاده از مدیر بسته APT به شرح زیر نصب شود:
sudo apt install -y mongodb
بااینحال، نسخه مانگو دی بی ارائه شده توسط مخازن جدیدترین نسخه نیست. در زمان انتشار این راهنما، نسخه ارائه شده توسط مخازن اوبونتو نسخه 3.6.8 است. در ضمن آخرین نسخه پایدار ارائه شده توسط MongoDB 5.0 است.
برای نصب آخرین بسته MongoDB، باید مخزن بسته مانگو دی بی را به فایل فهرست منابع خود در اوبونتو اضافه کنید.
اما ابتدا باید کلید عمومی MongoDB را با استفاده از دستور wget بهصورت زیر وارد سیستم خود کنید:
wget -qO – https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add –
این دستور خروجی زیر را ایجاد میکند که نشان میدهد کلید عمومی اضافه شده است
خروجی:
OK
سپس، مخزن APT MongoDB را به پوشه /etc/apt/sources.list.d اضافه کنید.
echo “deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse” | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
این دستور فایل mongodb-org-5.0.list را به پوشه /etc/apt/sources.list.d/ اضافه میکند. این فایل حاوی خط زیر است:
deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse
پس از اضافهشدن مخزن، فهرست بسته محلی را دوباره بارگیری کنید.
sudo apt update
این دستور مخازن محلی را تازه میکند و اوبونتو را از مخزن مانگو دی بی تازه اضافه شده آگاه میکند.
هنگامی که از راه رسید، بسته متا mongodb-org را که مانگو دی بی را ارائه میدهد، نصب کنید.
sudo apt install -y mongodb-org
هنگامی که نصب کامل شد، میتوانید نسخه نصب شده مانگو دی بی را مطابق شکل تأیید کنید:
mongod –version
این دستور برخی از خروجیها را در مورد مانگو دی بی از جمله نسخه و نسخه Git در میان جزئیات دیگر نمایش میدهد.
سرویس مانگو دی بی را راهاندازی و فعال کنید
به طور پیشفرض، سرویس مانگو دی بی پس از نصب غیرفعال میشود. با اجرای دستور میتوانید این موضوع را تأیید کنید:
sudo systemctl status mongod
برای راهاندازی سرویس مانگو دی بی دستور زیر را اجرا کنید:
sudo systemctl start mongod
یکبار دیگر، تأیید کنید که آیا سرویس در حال اجرا است:
از خروجی بالا میبینید که مانگو دی بی راهاندازی شده است. علاوه بر این، میتوانید با برقراری اتصال به سرور پایگاهداده و اجرای دستور تشخیصی تأیید کنید که پایگاهداده آماده و در حال اجرا است.
دستور نشاندادهشده به پایگاهداده متصل میشود و نسخه فعلی مانگو دی بی ، URL سرور و پورتی که در حال خواندن به آن است را نمایش میدهد.
mongo –eval ‘db.runCommand({ connectionStatus: 1 })’
علاوه بر این، مقدار دستور ConnectionStatus داخلی مانگو دی بی را برمیگرداند:
مقدار 1 برای پارامتر “ok” نشان میدهد که سرور پایگاهداده همانطور که انتظار میرود در حال اجرا است. در خط دوم، URL سرور را میبینید که آدرس لوکالهاست (127.0.0.1) و پورت پیشفرض (27017) است که مانگو دی بی به آن گوش میدهد.
همچنین میتوانید پورت پیشفرض را بهصورت زیر بررسی کنید.
sudo ss -pnltu | grep 27017
پس از تأیید اینکه سرویس طبق انتظار اجرا میشود، اکنون میتوانید مانگو دی بی را فعال کنید تا همانطور که نشاندادهشده است در هنگام بوت شروع شود.
sudo systemctl enable mongod
تا کنون، مانگو دی بی با موفقیت نصب و پیکربندی شده است تا از طریق بوت شروع شود.
نتیجهگیری نهایی
استفاده از یک پایگاهداده قدرتمند میتواند موجب توسعه سریعتر کسبوکار شما شود. تمامی استارتاپها، کسبوکارها و وبسایتها نیاز به ذخیره و بازیابی اطلاعات دارند. این اطلاعات شامل دادههای مرتبط با محصولات، کاربران و… خواهد بود. بحث ایمنی نیز در استفاده از آنها اهمیت ویژهای دارد.
مانگو دی بی یک پایگاهداده قوی باقابلیتهای عالی و عملکردهای داخلی برجسته است. امروزه بخشهای فناوری اطلاعات، تجارت الکترونیک، بانکداری، تدارکات و بسیاری دیگر با استفاده از MongoDB جریان دادههای خود را مدیریت میکنند. شرکتهای چندملیتی مانند Bosch، Uber، Accenture، Barclays، از مانگو دی بی برای ذخیره دادههای دستهبندی نشده به پیچیدهترین روش استفاده میکنند.
اگر به دنبال کارآمدترین پایگاهداده برای ذخیره و دسترسی یکپارچه به دادهها هستید، هیچ گزینهای بهتر از مانگو دی بی وجود ندارد. اگرچه تحلیل عملکرد MongoDB فوقالعاده است، شاید هیچ پشتیبانی از تراکنش وجود نداشته باشد و در واقع پایگاهداده از حافظه بسیار بالایی برای ذخیرهسازی استفاده میکند. البته که این موضوع نیز باید در مراکز داده مدیریت شود.