Laravel&Lumen安装Mongodb扩展

Laravel对于Redis扩展用起来非常方便,理论上来说对于Mongodb的扩展也应该如此,为此今天我们来记录下Laravel是如何支持Mongodb的。

1.添加composer依赖(jenssegers/mongodb):

composer require jenssegers/mongodb
或者
在composer文件添加"jenssegers/mongodb": "3.2",然后执行composer update

2. 配置Service Provider

providers追加: Jenssegers\Mongodb\MongodbServiceProvider::class,

aliases追加: 'Mongo' => Jenssegers\Mongodb\MongodbServiceProvider::class,
新增Mongo的匿名映射。

3. 配置database(config/database.php)

connections 追加: 'mongodb' => 
[ 
//MongoDB 'driver' => 'mongodb', 
'host' => '10.2.20.46', 
'port' => 10001, 
'username' => '', 
'password' => '', 
'database' => 'userbehavior', 
//demodb 'options' => [] 
],

4. 项目中如何使用:

1): 直接在代码中使用DB类连接对应的连接名,然后进行相应的操作:

$mongodb = DB::connection('mongodb');  // 获得mongodb的连接
$db = $mongodb->collection('user');    // 连接user数据库

$db->insert(['title' => 'email', 'article' => 'john@example.com','time' => time()]);
// 录入数据

dd($db->get());
dd($db->where('title', 'email')->get());
// 获取相关数据记录

2). 直接封装在model中,这样可以代码更加简洁

class TestModel extends Model
{
    protected $table = 'user';

    public static function connectMongo($table)
    {
        return $users = DB::connection('mongodb')->collection($table);
    }

}

这样代码中调用的时候使用静态方法获取mongodb连接,然后进行相关操作,默认的话仍然操作Mysql数据库。调用代码范例如下:

$testModel = TestModel::connectMongo('user');
$testModel->insert(['title' => 'email1', 'article' => 'john@example.com','time' => time()]);

dd($testModel->where('title', 'email1')->get());

发表评论

电子邮件地址不会被公开。 必填项已用*标注