نصب MongoDB و استفاده در لاراول

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

توجه: همه کارایی که من میگم روی Ubuntu 18.04.3 تست شده و بقیه جاها رو نمیدونم.

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

معروف ترین پکیجی که لاراولی ها برای کار با مانگو باهاش کار میکنن jenssegers/laravel-mongodb هست که میتونید نصبش کنید ولی قبلش باید یکار دیگه هم بکنید و اون هم اینه که درایور PHP برای مانگو رو نصب کنید. من چند تا راه رو رفتم و این پست از داکیومنت PHP واسم جواب داد. در واقع اگه PECL داشته باشید خیلی راحت با این کامند کارتون راه میفته:

حالا پکیج jenssegers رو نصب کنید و کارایی که گفته رو انجام بدید. حالا قانونا باید همه چی اوکی باشه ولی بازم واسه من اوکی نبود. اولین کاری که میکنید یبار سرویس مانگو رو استارت کنید.

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

دستور بالا اگه دیتابیس رو داشته باشید سلکتش میکنه اگه نداشته باشید میسازه. چقد کامند خوبیه 🙂 برای اینکه دیتابیس ها رو ببینید هم میتونید از دستور زیر استفاده کنید.

حالا با دستور زیر میتونید یوزر های این دیتابیس رو ببینید:

توجه کنید که db نباید اسم دیتابیستون باشه و همین db باید باشه. اگه یوزری ندارید باید بسازیدش. برای این کار این شکلی میتونید عمل کنید:

و حالا برید کانکشن دیتابیس رو توی فایل database.php بسازید. و بعدش دیفالت کانکشن رو هم تغییر بدید.

من یوزر و پسورد رو هم اینجا گذاشتم و اررور داد. شما اون یکی دو تا رو توی فایل .env بذارید.

و حالا php artisan migrate کنید. ایشالا که همه چی اوکی باشه.

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

استفاده از Eloquent در لاراول با MongoDB

اگه میخواید از Eloquent توی لاراول استفاده کنید باید مدل هاتون رو از Eloquent پکیج اسکتند کنید. بعنوان مثال برای مدل Post بصورت زیر عمل کنید:

حالا میتونید توی کنترلرتون از App\Post::all() و… استفاده کنید. البته برای جدول یوزر باید یه حرکت بیشتر هم بکنید و اون اینه:

این باعث میشه که توی مرحله Auth هم به اررور نخورید و مثل حالت معمولی با Auth::attempt لاگین کنید.

دیدگاهتان را بنویسید

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

*