当前位置:首页 > CMS教程 > Thinkphp > 列表

TP5(thinkPHP5)框架mongodb扩展安装及特殊操作示例

发布:smiling 来源: PHP粉丝网  添加日期:2021-10-28 14:24:40 浏览: 评论:0 

这篇文章主要介绍了TP5(thinkPHP5)框架mongodb扩展安装及特殊操作,结合实例形式分析了MongoDB扩展的基本安装、配置、模型操作以及使用Push操作实现的数据添加、更新等方法,需要的朋友可以参考下。

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

ThinkPHP 5.0 MongoDb驱动

首先安装官方的mongodb扩展:

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

找到对应的php版本的扩展

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

'type' => '\think\mongo\Connection',

即可正常使用MongoDb,例如:

使用最新mongodb扩展

  1. Db::name('demo'
  2.   ->find(); 
  3. Db::name('demo'
  4.   ->field('id,name'
  5.   ->limit(10) 
  6.   ->order('id','desc'
  7.   ->select(); 

或者使用模型操作:

User::get(1);

User::all('1,2,3');

MongoDb默认的主键是_id并且是一个ObjectID对象,如果需要和mysql一样使用id作为主键,可以如下参数:

  1. // 强制把_id转换为id 
  2. 'pk_convert_id' => true, 

tp5 Mongodb特殊操作

Push操作

添加数据

  1. public function add(){ 
  2.     $this->data = [ 
  3.       '作者'  => 'tuzi'
  4.       '年龄'  => '22'
  5.       '标题'  => '防塔与补兵'
  6.       '评论'  => [ 
  7.         [ 
  8.           '序号'  => '001'
  9.           '内容'  => '五杀' 
  10.         ] 
  11.       ] 
  12.     ]; 
  13.     $res = Db::table('document')->insert($this->data); 
  14.     if($res){ 
  15.       echo "success"
  16.     }else
  17.       echo "error"
  18.     } 

结果

  1. array(1) { 
  2.   [0] => array(5) { 
  3.     ["_id"] => object(MongoDB\BSON\ObjectId)#12 (1) { 
  4.       ["oid"] => string(24) "5a51f73083869e4b65549c36" 
  5.     } 
  6.     ["作者"] => string(4) "tuzi" 
  7.     ["年龄"] => string(2) "22" 
  8.     ["标题"] => string(15) "防塔与补兵" 
  9.     ["评论"] => array(1) { 
  10.       [0] => array(2) { 
  11.         ["序号"] => string(3) "001" 
  12.         ["内容"] => string(6) "五杀" 
  13.       } 
  14.     } 
  15.   } 

利用push更新数据

  1. public function update() 
  2.     $update_data['评论'] = [ 
  3.       '$push'
  4.       [ 
  5.         '序号'  => '002'
  6.         '内容'  => '三杀' 
  7.       ] 
  8.     ]; 
  9.     $update_res = Db::table('document')->where('标题','防塔与补兵')->update($update_data); 
  10.     if($update_res){ 
  11.       echo "success"
  12.     }else
  13.       echo "error"
  14.     } 

结果

  1. array(1) { 
  2.   [0] => array(5) { 
  3.     ["_id"] => object(MongoDB\BSON\ObjectId)#12 (1) { 
  4.       ["oid"] => string(24) "5a51f73083869e4b65549c36" 
  5.     } 
  6.     ["作者"] => string(4) "tuzi" 
  7.     ["年龄"] => string(2) "22" 
  8.     ["标题"] => string(15) "防塔与补兵" 
  9.     ["评论"] => array(2) { 
  10.       [0] => array(2) { 
  11.         ["序号"] => string(3) "001" 
  12.         ["内容"] => string(6) "五杀" 
  13.       } 
  14.       [1] => array(2) { 
  15.         ["序号"] => string(3) "002" 
  16.         ["内容"] => string(6) "三杀" 
  17.       } 
  18.     } 
  19.   } 
  20. }

Tags: thinkPHP5扩展安装 mongodb

分享到: