lumen配置使用mongodb副本集实例

1. 配置安装mongdodb扩展

pecl install mongodb

2. 在php.ini中添加如下代码(添加前先搜索一下是否已经存在,部分环境在第一步时会自动添加,重复添加可能会导致报错:Class 'MongoDB\Driver\Manager' not found,或者 PHP Warning: Module ‘mongodb’ already loaded in Unknown on line 0)

extension=mongodb.so

3. 添加composer依赖(jenssegers/mongodb):(mongodb版本可以根据需求自由修改)

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

4. 在lumen的bootstrap/app.php中注册驱动,并且必须开通withEloquent。MongodbServiceProvider的注册建议在其它服务之前,否则可能导致Unsupportdriver错误

$app->register(Jenssegers\Mongodb\MongodbServiceProvider::class);
....
....
$app->withEloquent();

5. 在config/database.php文件中增加mongodb数据配置:(如下是副本集实例的配置)

    'connections' => [
        'my_mongodb' => [
            'driver' => 'mongodb',
            'host' => array('dds-***.mongodb.rds.aliyuncs.com','dds-***.mongodb.rds.aliyuncs.com'),
            'port' => ***,
            'username' => 'root',
            'password' => '***',
            'database' => '***',
            'options' => array(
                'replicaSet' => '***',
                'db' => 'admin'
            )
        ],
    ],

6. 代码中使用DB对象读取数据(示例)

$mongodb = DB::connection('my_mongodb');  // 获得mongodb的连接, 可以复用
$db = $mongodb->collection('my_collection');    // 不支持复用,每次查询都要配置
$data = $db->where('my_test_key', $my_test_value)->get(); // 查询示例

 

参考文献:

1.https://learnku.com/laravel/t/1118/using-mongodbs-replica-set-in-laravel

2.https://www.ancii.com/ajmea4w3z/

3.http://www.21yunwei.com/archives/4866

4.https://www.jianshu.com/p/41865e061648

5.https://www.cnblogs.com/aademeng/articles/9774069.html  (增删改查示例)

你可能感兴趣的:(PHP基础,经验案例)