سلام. من شاید خیلی کمتر از اونی باشم که بخوام در مورد این پایگاه داده صحبت کنم اما امروز یه اتفاقی افتاد که فکر کردم شاید خوب باشه تجربیاتم رو به اشتراک بزارم. اون اتفاق هم این بود که خیلی اتفاقی به دنبال موضوعی در رابطه با مونگو توی وب فارسی گشتم و دیدم چقدر مطلب در موردش کمه. همین باعث شد که گفتم به اشتراک گذاری دانسته هام با اینکه فرصت روزانم برای نوشتن خیلی کمه ٬ اما شاید به درد یکی مثل ۵ سال قبل من بخوره بتونه مسیرش رو باز کنه.
البته همیشه خوندن رفرنس های خارجی رو پیشنهاد میدم . چه بسا که همین نوشته بتونه خیلی از کسانی رو که در ابتدای راه هستند رو راه بندازه و هدفم هم همینه.
خب دیگه مقدمه چینی بسه. بریم سراغ اصل مطلب...
مونگو یا بهتر بگم MongoDB یکی از پایگاه داده های NoSQL هست که البته تنهاترینشون هم نیست اما فکر میکنم عمومی ترینشون باشه. تمام اصول یک پایگاه داده ی کامل رو داره و همیشه بحث بر سر این بوده که پروژه مون رو با مونگو بنویسیم یا با پایگاه داده های SQL . راحت ترین جوابش این هست که برای پروژه های استارتاپی میتونه گزینه خوبی باشه. چون اون بخشی که همه باهاش تقریبا ۷۰ درصد کارشون رو انجام میدن رو به سادگی در اختیارتون قرار میده و واقعا ساده با مسائل برخورد میکنه.
در ابتدا یه سری فرض در نظر میگیریم و بر اساس اونها کارمون رو ادامه میدیم تا بصورت عملی وارد دنیای MongoDB بشیم.
من از سیستم عامل لینوکس و توزیع ubuntu 20.04 استفاده میکنم. برای نصب پایگاه داده از داکیونت رسمی خود MongoDB استفاده میکنم که آدرسش هم توی خط پایین نوشتم.
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
فرایند نصب خیلی ساده و سر راست هست که تو همون لینک بالا قدم به قدم توضیح داده شده.
بعد از تکمیل فرایند نصب با دستور ساده ی mongo وارد محیط شل (shell) مونگو میشم و این اولین قدم برای ارتباط با پایگاه داده هست.
دستورات shell خیلی زیاد هستن و من قصد ندارم همشو توضیح بدم. فقط دستورات مهم و اونایی که توی ساختن یک پایگاه داده ساده کمک میکنند رو بهتون میگم.
show dbs
با این دستور میتونید تمام پایگاه داده های مونگو (چه پایگاههای پیش فرض و چه اونایی که خودمون میسازیم) رو ببینیم.
use dbName
با این دستور پایگاه داده خودتون رو با نام dbName میسازید و البته اگر نام این پایگاه داده از قبل وجود داشته باشد وارد اون میشید. با این دستور هنوز پایگاه داده ای نساختیم و فقط به مونگو اعلام کردیم که قراره یه پایگاه داده با این نام بسازیم. حالا وقت اضافه کردن داده هست.
db.usersCollection.insert({ name: "mohamad", age: 25, hobbies:["game","sport"] })
بعد از وارد کردن خط بالا و فشردن کلید Enter مونگو پیامی میده که نتیجه کار رو اعلام میکنه
تو این مرحله اگر دستور زیر رو وارد کنید میتونید تمام کالکشن هایی رو که ساختید رو ببینید:
show collections
نکته مهم : استفاده از shell توی مونگو شاید بعدها خیلی به کارتون نیاد و با همون اسکیما ها و ماژول mongoos میتونید همه این کارها رو توی کد هاتون خیلی سریعتر و تمیزتر انجام بدید. پس نترسید. صرفا جهت آشنایی با محیط و البته روش ساختن پایگاه داده وارد بحث shell شدم
حالا که پایگاه داده رو ساختیم باید یه نام کاربری و رمز عبور بهش نسبت بدیم تا بتونیم بصورت امن تر و اصولی تر با استفاده از رابط های مختلف بهش متصل بشیم
db.createUser({user: "dbUserName",pwd:"dbPassword",roles: [ { role: "dbOwner", db: "dbName" } ]} )
با تکه کد بالا میتونید نام کاربری dbUserName و رمز عبور dbPassword رو به پایگاه داده dbName نسبت بدید. البته اون قسمت role هم میتونه مقادیر مختلفی بگیره و سطح دسترسی های مختلفی به کاربر پایگاه داده بده.
الان پایگاه داده ای که ساختیم آماده ست برای اتصال به وب اپلیکیشن node از طریق ماژول mongoose .
اگر عمری باشه در قسمت بعدی توضیح میدم که چطور به پایگاه داده متصل بشیم و چطور با استفاده از ماژول های واسط روی اون اطلاعات رو بنویسیم و بخونیم.
همیشه پر انرژی باشید و برقرار