首页 > 语言 > PHP > 正文

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

2024-05-05 00:05:18
字体:
来源:转载
供稿:网友

本文实例讲述了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) "三杀"
      }
    }
  }
}

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


注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选