<p>ThinkPHP 5.0.24 通过官方扩展 think-mongo(1.* 版本)实现 MongoDB 支持,依赖 PHP 的 mongodb C 扩展;需配置 database.php 指定连接类并启用认证等参数,方可使用 Db 类或模型操作 MongoDB。</p>

ThinkPHP 5.0.24 支持 MongoDB 的关键不是框架本身内置,而是通过官方扩展 think-mongo 实现兼容。它依赖底层 PHP 的 mongodb 扩展(C 扩展),再配合上层驱动封装,才能让 Db 类、模型等语法正常工作。
安装并启用 PHP 的 mongodb 扩展
这是最基础且不可跳过的一步。没有这个扩展,任何 PHP MongoDB 操作都会报错。
- 根据你的 PHP 版本和系统(Windows/Linux)去 PECL 官网 下载对应版本的
php_mongodb.dll(Win)或mongodb.so(Linux) - 把文件放进 PHP 的
ext/目录,然后在php.ini中添加:extension=mongodb(Linux/macOS)或extension=php_mongodb.dll(Windows) - 重启 Web 服务(如 Apache/Nginx)或 PHP-FPM,运行
php -m | grep mongodb或查看phpinfo()确认已加载
引入 think-mongo 扩展(适配 TP5.0)
TP5.0.24 只支持 think-mongo 的 1.* 版本,不能用 2.x 或更高版本。
- 执行命令:
composer require topthink/think-mongo=1.* - 安装后会在
vendor/topthink/think-mongo下生成Connection.php、Query.php等核心类 - 注意:该扩展仅适配 TP5,不兼容 TP6;TP6 需使用其他方案(如直接集成
mongodb/mongodb库)
配置 database.php 连接参数
修改 config/database.php,将 MongoDB 配置写入,并指定连接类型为 \think\mongo\Connection:
立即学习“PHP免费学习笔记(深入)”;
-
'type' => '\think\mongo\Connection'—— 必须准确,大小写和反斜杠都不能错 -
'hostname'、'hostport'、'database'是必填项,如'127.0.0.1'、'27017'、'myapp' -
'username'和'password'按需填写(若 MongoDB 开启了认证) - 如需把 MongoDB 默认的
_id字段转成id(方便与 MySQL 逻辑统一),加配置:'pk_convert_id' => true
开始使用(Db 类或模型)
配置生效后,就可以像操作 MySQL 一样写代码,只是底层走的是 MongoDB 协议:
- 查一条:
Db::name('users')->where(['status' => 1])->find(); - 查多条:
Db::name('logs')->limit(20)->order('_id', 'desc')->select(); - 模糊查询(正则):
$regex = new \MongoDB\BSON\Regex('关键词', 'i'); Db::name('articles')->where('title', $regex)->select(); - 模型方式(需继承
\think\Model并设置protected $connection = '\think\mongo\Connection';):User::where('age', '>', 18)->select();



















