thinkphp5.0.24 配置mongodb

一,环境

  thinkphp5.0.24 php 7.2 mongo

  mongodb 安装不再缀述,主要讲下tp5如果集成mongodb可以正常的查询,如果不清楚,要花费不少时间去排查。

二,下载think-mongo 1.*版本

  直接用composer require topthink/think-mongo=1.*

  在tp5框架vendor目录会下生成think-mongo相的 Connection.php Builder.php Query.php

三,配置tp5

  

return [

    // 数据库类型
    'type'        => '	hinkmongoConnection',
    // Query对象
    'query'           => '	hinkmongoQuery',
    // 数据库连接DSN配置
    'dsn'        => '',

    'hostname'    => '127.0.0.1',
    // 验证数据库
    'database'    => 'admin',
    //连接数据库
    'db' => 'conf',
    // 数据库用户名
    'username'    => 'sa',
    // 数据库密码
    'password'    => '123456',
    // 数据库连接端口
    'hostport'    => '27017',

    // 数据库编码默认采用utf8
    'charset'     => 'utf8',
    // 数据库表前缀
    'prefix'      => '',
    //是否返回id
    'pk_convert_id' => false,
    // 副本集
    'is_replica_set'  => false,
];

如果有多个数据库需要切换,可以在config.php里配置类似如下:

  

 'MONGO_USER' => [
        // 数据库类型
        'type'        => '	hinkmongoConnection',
        // Query类
        'query'           => '	hinkmongoQuery',
        // 数据库连接DSN配置
        'dsn'         => '',
        // 服务器地址
        'hostname' => '127.0.0.1',
        // 验证数据库
        'database'    => 'admin',
        // 数据库名
        'db'    => 'user',
        // 数据库用户名
        'username'    => 'sa',
        // 数据库密码
        'password'    => '123456',
        // 数据库连接端口
        'hostport'    => '27017',
        // 数据库连接参数x
        'params'      => [],
        // 数据库编码默认采用utf8
        'charset'     => 'utf8mb4',
        // 数据库表前缀
        'prefix'      => '',
        'pk_convert_id' => false,
        'debug'     =>  false,
        // 副本集
        //'is_replica_set'  => true,
    ],

这样连接的时候用Db::connect('MONGO_USER')就可以随意的切库了。

三,针对think-mongo的一个底层修改,重要

  

$this->links[$linkNum] = new Manager($host, $this->config['params']);

            if($config['db']){
                //切换数据库
                $this->db($config['db']);
            }

在Connection.php里一定要加上这段代码,不然一直会查询admin数据库的。

  

  

PHP中常见的问题点,知识点,及盲点。
原文地址:https://www.cnblogs.com/sblack/p/14525330.html