php教程

超轻量级php框架startmvc

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

更新时间:2020-03-29 22:54:04 作者:startmvc
本文实例讲述了TP5(thinkPHP5)框架mongodb扩展安装及特殊操作。分享给大家供大家参考,具体如

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

ThinkPHP 5.0 MongoDb驱动

首先安装官方的mongodb扩展:

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

找到对应的php版本的扩展

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


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

即可正常使用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(MongoDB\BSON\ObjectId)#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(MongoDB\BSON\ObjectId)#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) "三杀"       }     }   } }

TP5 thinkPHP5 框架 mongodb 扩展安装 特殊操作