laravel 使用mongodb

mongodb扩展安装

1
2
3
sudo pecl install mongodb
#或者
sudo apt-get install php-mongodb

laravel使用mongodb前准备

1
sudo composer require jenssegers/mongodb

在config/app.php下注册服务
‘providers’中加入

1
Jenssegers\Mongodb\MongodbServiceProvider::class,

‘aliases’ 中加入

1
2
'Moloquent' => Jenssegers\Mongodb\Eloquent\Model::class,
'Mongo' => Jenssegers\Mongodb\MongodbServiceProvider::class,

连接配置

在config/database.php中配置数据库
‘connections’ 中加入

1
2
3
4
5
6
7
8
9
10
11
12
'mongodb' => array(         //MongoDB
'driver' => 'mongodb',
'host' => '1xx.1xx.1xx.1x', //数据库服务器的ip
'port' => 27017, //数据库服务器上mongodb服务对应的端口
'database' => 'task_manager', //数据库名称
'username' => 'user',
'password' => 'xxx',
'options' => array(
'database' => 'task_manager' // 要使用的数据库
)

),

框架使用

在model中使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
namespace App;

use Emadadly\LaravelUuid\Uuids;
use Jenssegers\Mongodb\Eloquent\Model;
use Jenssegers\Mongodb\Eloquent\SoftDeletes;


class ExampleModel extends Model
{
//
use Uuids;

/**
* Indicates if the IDs are auto-incrementing.
*
* @var bool
*/
public $incrementing = false;

use SoftDeletes;

protected $connection = 'mongodb';
protected $collection = 'xxx表名'; //表名
protected $primaryKey = 'id'; //设置主键
protected $fillable = [ 'id','title', 'type','xx']; //设置字段白名单


/**
* 需要被转换成日期的属性。
*
* @var array
*/

protected $dates = ['deleted_at'];

}

在controller中使用

1
2
3
4
5
6
7
8
9
#增
$result = ExampleModel::create($data);
#删
$result = ExampleModel::where('id', $id)->delete();
#改
$result = ExampleModel::where('id',$id)->update($data);
#查
$result = ExampleModel::all();
$result = ExampleModel::where('id',$id)->get();