PHPackages                             mryup/hyperf-mongodb - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. mryup/hyperf-mongodb

ActiveLibrary[Database &amp; ORM](/categories/database)

mryup/hyperf-mongodb
====================

Open for hyperf mongodb, Fork of yumufeng/hyperf-mongodb,thanks Mr yumufeng

v3.4.5(2y ago)0118↓100%MITPHPPHP &gt;=7.2

Since Sep 19Pushed 2y agoCompare

[ Source](https://github.com/MrYup/hyperf-mongodb)[ Packagist](https://packagist.org/packages/mryup/hyperf-mongodb)[ RSS](/packages/mryup-hyperf-mongodb/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (4)Versions (26)Used By (0)

hyperf mongodb pool
===================

[](#hyperf-mongodb-pool)

```
composer require mryup/hyperf-mongodb

```

前言
--

[](#前言)

Fork 与 `yumufeng/hyperf-mongodb`包，添加了Query Builder，Model Eloquent，以及做了一些个性化修改 感谢大佬的开源奉献，如若侵权，烦请告知下架

config
------

[](#config)

在/config/autoload目录里面创建文件 mongodb.php 添加以下内容

```
return [
    'default' => [
        'username' => env('MONGODB_USERNAME', ''),
        'password' => env('MONGODB_PASSWORD', ''),
        'host' => env('MONGODB_HOST', '127.0.0.1'),
        'port' => env('MONGODB_PORT', 27017),
        'db' => env('MONGODB_DB', 'test'),
        'authMechanism' => 'SCRAM-SHA-256',
        //设置复制集,没有不设置
        'replica' => 'rs0',
        'pool' => [
            'min_connections' => 1,
            'max_connections' => 100,
            'connect_timeout' => 10.0,
            'wait_timeout' => 3.0,
            'heartbeat' => -1,
            'max_idle_time' => (float)env('MONGODB_MAX_IDLE_TIME', 60),
        ],
        'options' => [
            //维护数据库每张表的自增id集合名称
            'id_collector' => env('MONGODB_ID_COLLECTOR'),
        ],
    ],
];
```

使用案例
====

[](#使用案例)

使用注解，自动加载 **\\Hyperf\\Mongodb\\MongoDb**

```
/**
 * @Inject()
 * @var MongoDb
*/
 protected $mongoDbClient;
```

#### **tips:**

[](#tips)

查询的值，是严格区分类型，string、int类型的哦

### 新增

[](#新增)

单个添加

```
$insert = [
            'account' => '',
            'password' => ''
];
$this->$mongoDbClient->insert('fans',$insert);
```

批量添加

```
$insert = [
            [
                'account' => '',
                'password' => ''
            ],
            [
                'account' => '',
                'password' => ''
            ]
];
$this->$mongoDbClient->insertAll('fans',$insert);
```

### 查询

[](#查询)

```
$where = ['account'=>'1112313423'];
$result = $this->$mongoDbClient->fetchAll('fans', $where);
```

### 分页查询

[](#分页查询)

```
$list = $this->$mongoDbClient->fetchPagination('article', 10, 0, ['author' => $author]);
```

### 更新

[](#更新)

```
$where = ['account'=>'1112313423'];
$updateData = [];

$this->$mongoDbClient->updateColumn('fans', $where,$updateData); // 只更新数据满足$where的行的列信息中在$newObject中出现过的字段
$this->$mongoDbClient->updateRow('fans',$where,$updateData);// 更新数据满足$where的行的信息成$newObject
```

### 删除

[](#删除)

```
$where = ['account'=>'1112313423'];
$all = true; // 为true只删除匹配的一条，true删除全部
$this->$mongoDbClient->delete('fans',$where,$all);
```

### count统计

[](#count统计)

```
$filter = ['isGroup' => "0", 'wechat' => '15584044700'];
$count = $this->$mongoDbClient->count('fans', $filter);
```

### Eloquent

[](#eloquent)

- 手动创建一个model，继承 `Mryup\HyperfMongodb\MongodbModel`，(这里做了JWT鉴权，可忽略)

```
