本文实例讲述了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程序设计有所帮助。