• 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中常见的问题点,知识点,及盲点。
  • 相关阅读:
    js-格式化数字保留两位小数-带千分符
    java-byte[]图片在页面展示
    bootstrap-fileupload-上传文件控件
    css-让div永远在最底部
    hibernate-DetachedCriteria实现关联表条件复查
    eclipse-搭建maven的war项目集合spring注解方式
    spring-注解
    eclipse-mvn打包跳过junit测试类
    Spring-注解控件介绍
    java-读取类中的属性名称和值
  • 原文地址:https://www.cnblogs.com/sblack/p/14525330.html
Copyright © 2020-2023  润新知