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) "三杀"
      }
    }
  }
}

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

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

(0)

相关推荐

  • linux环境下安装PHP的OpenSSL扩展的方法讲解

    先安装依赖包:yum install openssl openssl-devel 进入PHP安装包里的OpenSSL文件夹,根据个人的安装包位置不同,此处是 cd /home/local/php.5.6.25/ext/openssl/ phpize 可能会报错:Cannot find config.m4. Make sure that you run /usr/local/bin/phpize in the top level source directory of the module, 在当

  • 解决php扩展安装不生效问题

    php安装扩展模块后,重启不生效的原因及解决办法 在lnmp运维环境中,我们经常会碰到有些php依赖的扩展模块没有安装,这就需要后续添加这些扩展模块.在扩展被安装配置后,往往会发现php-fpm服务重启后,这些扩展并没有真正加载进去!下面就以一个示例进行说明: 示例环境: php安装包存放路径:/data/software/php-5.6.10.tar.gz php安装目录:/data/php [root@zabbix ~]# ll /data/software/php-5.6.10.tar.g

  • Linux下PHP安装mcrypt扩展模块笔记

    系统环境:centOS6.3 APACHE:httpd-2.4.2 PHP:php-5.3.21 一.安装mcrypt 1.下载Libmcrypt,mhash,mcrypt安装包 复制代码 代码如下: libmcrypt-2.5.8.tar.gz # wget http://sourceforge.net/project/showfiles.php?group_id=87941&package_id=91774&release_id=487459 mhash-0.9.9.tar.gz #

  • linux服务器安装PHP扩展zip,zlib方法

    首先Linux服务器已安装好PHP PHP各个版本下载地址:http://php.net/releases/ 以我使用的5.4.45为例,我将下载的压缩包放到/root/Downloads/目录下 解压压缩包:tar -xzvf  php-5.4.45.tar.gz 安装PHP(忽略 ) 现在以安装zip扩展为例 >> cd /root/Downloads/php-5.4.45/ext/zip >>find / -name phpize >>/usr/local/php

  • php7安装openssl扩展方法

    1.我的源码在 /home/topsec/Documents/php-7.0.11 ,安装位置在 /usr/local/php7, php.ini 在/ usr/local/php7/lib 下.如果没有php.ini需要把源码中的配置文件 php.ini-development 或php.ini-production改名成php.ini并放在lib下. 2.进入openssl的扩展目录 :/home/topsec/Documents/php-7.0.11/ext/openssl 3.运行php

  • 在IIS下安装PHP扩展的方法(超简单)

    很多网上的文章在介绍IIS下安装PHP的时候都会涉及到很多配置的修改,其实大部分都是不必要的,对于需要查找如何安装PHP扩展的人来说,其实最需要的或许只是一个现在就能用的版本,在这个时候引入过多的不必要的配置我认为是低效的. 那么归纳一下其实安装步骤只需要三步: 1.下载PHP的文件包: 2.配置PHP: 3.将PHP扩展引入IIS: 当然,或许还有第4步:测试. 第一步:下载PHP PHP的windows版本是直接提供了一个压缩包,里面包括了运行所需的全部文件,堪称傻瓜式安装,可以从官网上的w

  • php安装swoole扩展的方法

    本文实例讲述了php安装swoole扩展的方法.分享给大家供大家参考.具体如下: 我本机是OS X,想要安装swoole体验一下,于是: 复制代码 代码如下: andy@AndyMacBookPro:/usr/local/webdata/github$ cd swoole-src/ andy@AndyMacBookPro:/usr/local/webdata/github/swoole-src$ git pull Already up-to-date. andy@AndyMacBookPro:/

  • php扩展memcached和memcache的安装配置方法

    php连接memcached缓存服务器的客户端有两个,一个是memcache是比较底层的开发库,memcached是比较新的开发库,php安装这两个扩展中的任意一个后就可以在编写php代码时使用的memcached缓存数据,达到缓存php执行的结果 1.安装memcache tar -zxvf memcache-2.2.7.tgz cd memcache-2.2.7 /usr/local/php/bin/phpize ./configure –with-php-config=/usr/local

  • PHP5.3以上版本安装ZendOptimizer扩展

    现在很多PHP程序都需要ZendOptimizer环境,但是ZendOptimizer在PHP5.2之后已经被支持,那怎么办,Zend也不会这么做,原来PHP5.3开始ZendOptimizer正式改为Zend Guard Loader. Zend Guard Loader的发布,而且Zend Optimizer不会再更新,并且由于差异很大使用Zend Guard加密代码时将提示你是否使用php5.3,如果使用5.3那么代码就无法在php5.2上运行. Zend Guard Loader安装说明

  • 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,例如: 使用最新mongod

  • tp5(thinkPHP5框架)captcha验证码配置及验证操作示例

    本文实例讲述了tp5(thinkPHP5框架)captcha验证码配置及验证操作.分享给大家供大家参考,具体如下: 1-安装 composer require topthink/think-captcha 1.* -vvv 2-配置文件 'captcha' => [ // 验证码字符集合3. 'codeSet' => '2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY', // 验证码字体大小(px)5. 'fontSize' =>

  • tp5(thinkPHP5框架)使用DB实现批量删除功能示例

    本文实例讲述了tp5(thinkPHP5框架)使用DB实现批量删除功能.分享给大家供大家参考,具体如下: 1-前端页面 html <a href="javascript:;" rel="external nofollow" onclick="datadel()" class="btn btn-danger radius"> <i class="Hui-iconfont" ><

  • tp5(thinkPHP5)框架实现多数据库查询的方法

    本文实例讲述了tp5(thinkPHP5)框架实现多数据库查询的方法.分享给大家供大家参考,具体如下: 引言: 有时候一个管理后台,需要涉及到多个数据库.比如,商城管理.直播管理.消息管理等等,它们都有自己的数据库.这个时候,就需要去连接多个数据库,进行处理了.thinkphp可以支持多个数据库连接. 如何处理呢? 1.进行多个数据库的配置 默认会连接database.php中的数据库信息. <?php // +------------------------------------------

  • tp5(thinkPHP5框架)时间查询操作实例分析

    本文实例讲述了tp5(thinkPHP5框架)时间查询操作.分享给大家供大家参考,具体如下: 在项目中 可能会遇到 跨月份进行查询 比如在 当输入201809 会获取当月的开始时间$start_month 和 结束时间 $end_month 会查询2018年9月份的数据 但是当其中的一个数据是在201809到201810 ,数据库的字段是 start_time end_time 这时候 Db::name("表名")->where('start_time','<= time'

  • TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例

    本文实例讲述了TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法.分享给大家供大家参考,具体如下: 1-引入js文件和css文件 <!--图片上传--> <link href="/public/static/css/bootstrap.min.css" rel="external nofollow" rel="stylesheet"> <link href="/public/sta

  • TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法

    本文实例讲述了TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法.分享给大家供大家参考,具体如下: 在程序调试的过程中,想要调试显示详细的错误信息,需要修改application\config.php 文件中进行设置,设置两处:把show_error_msg的值false改为true // 显示错误信息 'show_error_msg' => true, 改完以后的提示为: 这种提示看不出哪里出问题,如果要显示详细的错误,要再修改一处: 修改完以后的错误提示变得很详细了. 更多关于

  • TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例

    本文实例讲述了TP5(thinkPHP5)框架基于ajax与后台数据交互操作.分享给大家供大家参考,具体如下: Ajax最大的一点是页面无刷新,在页面内与服务器通信,给用户的体验非常好.可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本.并且减轻服务器的负担,ajax的原则是"按需取数据",可以最大程度的减少冗余请求,和响应对服务器造成的负担. 最近在用tp5开发企业微应用,很有收获,觉得最需要注意的是thinkphp

  • tp5(thinkPHP5)框架数据库Db增删改查常见操作总结

    本文实例讲述了tp5(thinkPHP5)框架数据库Db增删改查常见操作.分享给大家供大家参考,具体如下: 添加数据insert $data = [ 'name_cn' => '张三', 'name_en' => 'jack', ]; $res = Db::name('style')->insert($data); 添加数据. INSERT INTO `tf_style` (`name_cn` , `name_en`) VALUES ('张三' , 'jack') tp5还可以通过ins

  • TP5(thinkPHP5)框架使用ajax实现与后台数据交互的方法小结

    本文实例讲述了TP5(thinkPHP5)框架使用ajax实现与后台数据交互的方法.分享给大家供大家参考,具体如下: 方法一: serialize() 方法通过序列化表单值,创建 URL 编码文本字符串,这个是jquery提供的方法 前端代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>ajax交互</title> <script s

随机推荐