今天想用tp5来做mongodb,但是查找各种教程各种连上不,最后看到thinkphp官网有介绍怎么连接mogodb,但是使用官方提示的下面方法还是不行
composer require topthink/think-mongo=1.*
先安装1.*的扩展驱动,对了php连接mongodb的扩展也不要忘记装了,那个我现在这里暂时不做过多讲解,windows上比较简单,这里咱们还是继续随着官方走,然后修改database.php
文件
将type参数改为下面这样
'type' => '\think\mongo\Connection',
接下来可以使用Db
类直接操作MongoDb
了,例如:
Db::name('demo') ->find(); Db::name('demo') ->field('id,name') ->limit(10) ->order('id','desc') ->select();
或者使用模型操作:
User::get(1); User::all('1,2,3');
MongoDb
默认的主键是_id
并且是一个ObjectID对象,如果需要和mysql一样使用id
作为主键,可以如下参数:
// 强制把_id转换为id 'pk_convert_id' => true,
这么操作下来还是报错
最后在下面的回复找到正确解决方案了
下载:https://github.com/top-think/think-mongo
以上解压覆盖到\vendor\topthink\think-mongo,然后
然后,配置应用的数据库配置文件database.php
的type
参数和query
参数为:
'type' => '\think\mongo\Connection', 'query' => '\think\mongo\Query',
即可正常使用MongoDb,例如:
Db::name('demo') ->find(); Db::name('demo') ->field('id,name') ->limit(10) ->order('id','desc') ->select();
果然好了。