本文实例讲述了TP5(thinkPHP5)框架mongodb扩展安装及特殊操作。分享给大家供大家参考,具体如下:

ThinkPHP 5.0 MongoDb驱动

首先安装官方的mongodb扩展:

http://pecl.php.net/package/mongodb

找到对应的php版本的扩展

然后,配置应用的数据库配置文件database.php的type参数为:

"type" => "	hinkmongoConnection",

即可正常使用MongoDb,例如:

使用最新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,

tp5 Mongodb特殊操作

Push操作

添加数据

public function add(){    $this->data = [      "作者"  => "tuzi",      "年龄"  => "22",      "标题"  => "防塔与补兵",      "评论"  => [        [          "序号"  => "001",          "内容"  => "五杀"        ]      ]    ];    $res = Db::table("document")->insert($this->data);    if($res){      echo "success";    }else{      echo "error";    }}

结果

array(1) {  [0] => array(5) {    ["_id"] => object(MongoDBBSONObjectId)#12 (1) {      ["oid"] => string(24) "5a51f73083869e4b65549c36"    }    ["作者"] => string(4) "tuzi"    ["年龄"] => string(2) "22"    ["标题"] => string(15) "防塔与补兵"    ["评论"] => array(1) {      [0] => array(2) {        ["序号"] => string(3) "001"        ["内容"] => string(6) "五杀"      }    }  }}

利用push更新数据

public function update(){    $update_data["评论"] = [      "$push",      [        "序号"  => "002",        "内容"  => "三杀"      ]    ];    $update_res = Db::table("document")->where("标题","防塔与补兵")->update($update_data);    if($update_res){      echo "success";    }else{      echo "error";    }}

结果

array(1) {  [0] => array(5) {    ["_id"] => object(MongoDBBSONObjectId)#12 (1) {      ["oid"] => string(24) "5a51f73083869e4b65549c36"    }    ["作者"] => string(4) "tuzi"    ["年龄"] => string(2) "22"    ["标题"] => string(15) "防塔与补兵"    ["评论"] => array(2) {      [0] => array(2) {        ["序号"] => string(3) "001"        ["内容"] => string(6) "五杀"      }      [1] => array(2) {        ["序号"] => string(3) "002"        ["内容"] => string(6) "三杀"      }    }  }}

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。