它山之石可以攻玉

键盘上的生活
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一个最简的Thinkphp3.2 操作Mongodb的例子

Posted on 2017-09-29 11:03  陈达辉  阅读(1396)  评论(0编辑  收藏  举报

看到Thinkphp网站上没有调用Mongodb的例子,就写一个一个最简的Thinkphp操作Mongodb的例子。欢迎讨论
【前提】
Thinkphp对Mongdb的支持依赖于PHP对Mongodb的支持。这是前提。如果出现类似“系统不支持:mongoClient”的提示,说明你的PHP还没支持Mongodb。

那么你需要做的就是
1、去https://github.com/mongodb/mongo-php-driver/downloads下载最新的PHP-Mongodb扩展包,下载后把和你PHP大版本相符合的文件重命名为php_mongo.dll
如,我的PHP是5.3.13,win7 64位系统,那么就把
php_mongo-1.3.2RC1-5.3-vc9-x86_64.dll改成php_mongo.dll
2、把改名后的文件复制到php的ext文件夹
3、修改php.ini ,增加 extension=php_mongo.dll



【配置】
修改配置文件如下,即可链接mongodb数据库:

<?php
return array(
    //'配置项'=>'配置值'
    'DB_TYPE' => 'mongo', // 数据库类型
    'DB_HOST' => 'localhost', // 服务器地址
    'DB_NAME' => 'local', // 数据库名
    'DB_USER' => '', // 用户名
    'DB_PWD' => '', // 密码
    'DB_PORT' => '27017', // 端口
 );

 

【代码】
对于操作mongodb,要使用M方法。
因此要初始化一个类。假设数据库里有数据表user,那么要给user创建一个继承自MongoModel的模型:

<?php
namespace Home\Model;
use Think\Model\MongoModel;
Class UserModel extends MongoModel 
{       
 //可以是空的。
}

 

修改IndexController如下,即可调用Mongodb中local数据库里的user Collection

<?php
 namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
     $Model =  D("User");
    $Model->create();
     $Model->name = '流年2';
    $Model->add();
     $a = $Model->select();
     var_dump($a);
 
    }
}