alikuro/laravel-native-mongodb

使用PHP MongoDB驱动管理器提供的原生MongoDB连接。

1.2.1 2020-08-30 19:04 UTC

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()-> . . .
    
    . . . 
}

查询构建器

. . .

示例

. . .