alikuro/ laravel-native-mongodb
使用PHP MongoDB驱动管理器提供的原生MongoDB连接。
1.2.1
2020-08-30 19:04 UTC
Requires
- php: >=7.2.24
This package is not auto-updated.
Last update: 2024-09-20 11:03:08 UTC
README
使用PHP MongoDB驱动管理器提供的原生MongoDB连接。
目录
安装
确保您已安装MongoDB PHP驱动管理器。安装说明请参阅https://php.ac.cn/manual/en/mongodb.installation.php
仅适用于较新的mongodb PHP驱动版本。
使用composer进行安装
composer require alikuro/laravel-native-mongodb
Laravel版本兼容性
配置
将以下配置添加到config/database.php
中的connections数组,用于mongodb连接
'mongodb' => [ 'driver' => 'mongodb', 'host' => (preg_match("/,/",env('MONGO_HOST', '127.0.0.1'))? explode(',', env('MONGO_HOST', '127.0.0.1')) : env('MONGO_HOST', '127.0.0.1')), 'port' => env('MONGO_PORT', '27017'), 'database' => env('MONGO_DATABASE', 'default'), 'username' => env('MONGO_USERNAME', 'default'), 'password' => env('MONGO_PASSWORD', ''), 'options' => ( preg_match("/,/",env('MONGO_OPTIONS', null))? ( array_map(function($value){ $_tmp = []; for($i=0; $i<count($value); $i++){ if(is_array($value[$i])){ $_tmp+=$value[$i]; }else{ $_tmp+=[$value[$i]=>null]; } } return $_tmp; }, [ array_map(function($value){ $_tmp = array_map('trim', explode(':', $value)); return count($_tmp)>1?[$_tmp[0]=>$_tmp[1]]:trim($value); }, explode(',', env('MONGO_OPTIONS', null))) ])[0]): (count(explode(':', env('MONGO_OPTIONS', null)))>1?[explode(':', env('MONGO_OPTIONS', null))[0]=>explode(':', env('MONGO_OPTIONS', null))[1]]:env('MONGO_OPTIONS', null)) ), ],
然后您可以将配置设置在.env
文件中,如下所示
MONGO_HOST=127.0.0.1 MONGO_PORT=27017 MONGO_DATABASE=dev_table MONGO_USERNAME= MONGO_PASSWORD= MONGO_OPTIONS=
通过向config/app.php
中的providers数组添加以下内容,注册MongoDB模型的service provider
Alikuro\Mongodb\MongodbServiceProvider::class,
通过向config/app.php
中的aliases数组添加以下内容,为MongoDB模型注册别名
'Xmongo' => Alikuro\Mongodb\MongodbFacade::class,
这将允许您使用以下脚本
use Xmongo;
private function foo(){ . . . Xmongo::db()-> . . . . . . }
查询构建器
. . .
示例
. . .