mohamad najafi
mohamad najafi
خواندن ۴ دقیقه·۴ سال پیش

شروع کار با پایگاه داده MongoDB - قسمت اول (آغاز دوستی با مونگوی دوست داشتنی)





سلام. من شاید خیلی کمتر از اونی باشم که بخوام در مورد این پایگاه داده صحبت کنم اما امروز یه اتفاقی افتاد که فکر کردم شاید خوب باشه تجربیاتم رو به اشتراک بزارم. اون اتفاق هم این بود که خیلی اتفاقی به دنبال موضوعی در رابطه با مونگو توی وب فارسی گشتم و دیدم چقدر مطلب در موردش کمه. همین باعث شد که گفتم به اشتراک گذاری دانسته هام با اینکه فرصت روزانم برای نوشتن خیلی کمه ٬ اما شاید به درد یکی مثل ۵ سال قبل من بخوره بتونه مسیرش رو باز کنه.

البته همیشه خوندن رفرنس های خارجی رو پیشنهاد میدم . چه بسا که همین نوشته بتونه خیلی از کسانی رو که در ابتدای راه هستند رو راه بندازه و هدفم هم همینه.

خب دیگه مقدمه چینی بسه. بریم سراغ اصل مطلب...

مونگو یا بهتر بگم 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 میسازید و البته اگر نام این پایگاه داده از قبل وجود داشته باشد وارد اون میشید. با این دستور هنوز پایگاه داده ای نساختیم و فقط به مونگو اعلام کردیم که قراره یه پایگاه داده با این نام بسازیم. حالا وقت اضافه کردن داده هست.

  • افزودن داده به پایگاه داده:
  • مونگو بر خلاف پایگاه های داده ی SQL که از جدول ها برای جدا کردن موجودیت های خودشون استفاده میکنند٬ چیزی داره به نام کالکشن (collection) . در حقیقت کالکشن ها شبیه جداول رفتار میکنند و ما میتونیم مدل های دلخواهمون رو داخل اونا تعریف کنیم. اصطلاحا به مدل هایی که داخل هر کالکشن تعریف میکنیم اسکیما (schema) گفته میشه. به زبان دیگه هر اسکیما مشخص میکنه که هر کالکشن چه جایگاههایی با چه نوع نوع داده ای (data type) رو میتونه توی خودش ذخیره کنه. در مورد اسکیما ها بعدها بیشتر توضیح میدم. الان قصد دارم یه کالکشن رو توی دیتا بیسم بسازم و یه داده هم بهش اضافه کنم. میتونیم این کار رو توئمان انجام بدیم. بصورت زیر :
db.usersCollection.insert({ name: &quotmohamad&quot, age: 25, hobbies:[&quotgame&quot,&quotsport&quot] })
  • این دستور یه کالکشن با نام usersCollection ایجاد میکنه و داده ای رو بصورت بالا که شامل name و age
    hobbies کاربر هست رو بهش اضافه میکنه.

بعد از وارد کردن خط بالا و فشردن کلید Enter مونگو پیامی میده که نتیجه کار رو اعلام میکنه

نتیجه میگه که تعداد داده ی وارد شده ۱ است
نتیجه میگه که تعداد داده ی وارد شده ۱ است
  • حالا برای وارد کردن سایر داده ها و کالکشن ها هم میتونیم به همین صورت عمل کنیم
  • نمایش کالکشن های ساخته شده:

تو این مرحله اگر دستور زیر رو وارد کنید میتونید تمام کالکشن هایی رو که ساختید رو ببینید:

show collections
نام کالکشن ایجاد شده نمایش داده شده
نام کالکشن ایجاد شده نمایش داده شده
  • در حقیقت شما تا الان تونستید ساختاری به نام کالکشن ایجاد کنید که میتونی داده ی تمام کاربران شما رو ذخیره کنه . همینطور میتونید برای تمام موجودیت های دیگر پروژه تون کالکشن بسازید.




نکته مهم : استفاده از shell توی مونگو شاید بعدها خیلی به کارتون نیاد و با همون اسکیما ها و ماژول mongoos میتونید همه این کارها رو توی کد هاتون خیلی سریعتر و تمیزتر انجام بدید. پس نترسید. صرفا جهت آشنایی با محیط و البته روش ساختن پایگاه داده وارد بحث shell شدم




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

  • اضافه کردن نام کاربری و رمز عبور به یک پایگاه داده :
db.createUser({user: &quotdbUserName&quot,pwd:&quotdbPassword&quot,roles: [ { role: &quotdbOwner&quot, db: &quotdbName&quot } ]} )

با تکه کد بالا میتونید نام کاربری dbUserName و رمز عبور dbPassword رو به پایگاه داده dbName نسبت بدید. البته اون قسمت role هم میتونه مقادیر مختلفی بگیره و سطح دسترسی های مختلفی به کاربر پایگاه داده بده.

نتیجه ی اضافه کردن یه کاربر با رمز عبور به پایگاه داده
نتیجه ی اضافه کردن یه کاربر با رمز عبور به پایگاه داده

الان پایگاه داده ای که ساختیم آماده ست برای اتصال به وب اپلیکیشن node از طریق ماژول mongoose .
اگر عمری باشه در قسمت بعدی توضیح میدم که چطور به پایگاه داده متصل بشیم و چطور با استفاده از ماژول های واسط روی اون اطلاعات رو بنویسیم و بخونیم.


همیشه پر انرژی باشید و برقرار

مونگوپایگاه‌دادهmongodbmongoosenosql
اگه بشه اسممو گذاشت " توسعه دهنده " فامیلیمو میزارم " وب "
شاید از این پست‌ها خوشتان بیاید