اتصال لاراول به دیتابیس mongodb

۲۳ فروردین ۱۳۹۶

برای اتصال لاراول به mongodb فرمان زیر را اجرا می کنیم:

composer require jenssegers/mongodb

حتما قبل از نصب توجه داشته باشید که درایور mongodb برای php نصب باشد.سپس کلاس زیر را به service provider در config/app.php اضافه می کنیم.

Jenssegers\Mongodb\MongodbServiceProvider::class,

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

use Jenssegers\Mongodb\Eloquent\Model as Eloquent;

class User extends Eloquent {}
تنظیمات دیتابیس

حالا به فایل config/database.php تغییرات زیر را انجام دهید:

'default' => env('DB_CONNECTION', 'mongodb'),

و connection زیر را برای اتصال به mongodb اضافه کنید:

'mongodb' => [
    'driver'   => 'mongodb',
    'host'     => env('DB_HOST', 'localhost'),
    'port'     => env('DB_PORT', 27017),
    'database' => env('DB_DATABASE'),
    'username' => env('DB_USERNAME'),
    'password' => env('DB_PASSWORD'),
    'options'  => [
		'replicaSet' => 'replicaSetName'
	]
],

همچنین شما می توانید برای اتصال به mongodb از ویژگی (property) به نام connection استفاده کنید به مثال زیر توجه کنید:

use Jenssegers\Mongodb\Eloquent\Model as Eloquent;

class MyModel extends Eloquent {

    protected $connection = 'mongodb';

}
Query Builder

برای ساخت query از collection به جای table استفاده می کنیم به مثال زیر توجه کنید:

$users = DB::collection('users')->get();

$user = DB::collection('users')->where('name', 'John')->first();

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

$user = DB::connection('mongodb')->collection('users')->get();
Schema

برای سخت جداول از دستورات زیر می توانیم استفاده کنیم:

Schema::create('users', function($collection)
{
   $collection->index('name');
   $collection->unique('email');
});
        
همچنین از دستوراتی مانند:
  • create and drop
  • collection
  • hasCollection
  • index and dropIndex - compound indexes supported as well
  • unique
  • background, sparse, expire - MongoDB specific
می توانید استفاده کنید.

 نویسنده:حمید شاه محمدی
 تعداد مشاهده خبر:(1552)
 هر روز از مقاله های جدید طراحی سایت در کانال تلگرام ما با خبر شوید

 میانگین امتیازات:
 
  تعداد رای دهندگان: {{ count }}
نظرات:

{{ x }}
{{ alert }}

نویسنده:{{ com.name }}
{{ com.body }}
{{ com.created_at }}