• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    php操作mongodb封装类与用法实例

    本文实例讲述了php操作mongodb封装类与用法。分享给大家供大家参考,具体如下:

    近来学习了mongodb,刚好是做php开发的,随便写了php操作mongodb的封装类.

    ?php
    /**
     * Created by PhpStorm.
     * User: lee
     * Date: 2016/10/24
     * Time: 13:49
     */
    namespace App\Http\Controllers\Api;
    use App\Http\Common\ReturnApi;
    /*
     *
     *
     mongdb常规操作
     */
    class MongdbCommonController
    {
      private static $conn;
      private static $mon;
      private static $error;
      private function __construct(){
        //self::$conn = new \MongoClient("mongodb://".env('MONGDB_USER').":".env('MONGDB_PASS')."@".env('MONGDB_HOST').":".env('MONGDB_PORT')."/".env('MONGDB_DB'));
        self::$conn = new \MongoClient("mongodb://".env('MONGDB_USER').":".env('MONGDB_PASS')."@".env('MONGDB_HOST').":".env('MONGDB_PORT'));
        //self::$conn = new \MongoClient("mongodb://".env('MONGDB_HOST').":".env('MONGDB_PORT'));
        $db = env('MONGDB_DB');
        self::$mon = self::$conn->$db;
      }
      public static function getInstance(){
        if(!(self::$conn instanceof self)){
          self::$conn = new self();
        }
        //return self::$conn->mydb;
        return self::$conn;
      }
      private function __clone(){
        trigger_error('Clone is not allowed');
      }//禁止克隆
      //创建索引
      public function ensureIndex($table, $index, $index_param=array())
      {
        $index_param['safe'] = 1;
        try {
          self::$mon->$table->ensureIndex($index, $index_param);
          return true;
        }
        catch (MongoCursorException $e)
        {
          self::$error = $e->getMessage();
          return false;
        }
      }
      //添加
      public function insert($table,$arr){
        try {
          self::$mon->$table->insert($arr, array('w'=>true));
          return true;
        }
        catch (MongoCursorException $e)
        {
          self::$error = $e->getMessage();
          return false;
        }
      }
      //更新
      public function update($table, $condition, $new_arr, $options=array())
      {
        $options['w'] = 1;
        if (!isset($options['multiple']))
        {
          $options['multiple'] = 0;
        }
        try {
          self::$mon->$table->update($condition, $new_arr, $options);
          return true;
        }
        catch (MongoCursorException $e)
        {
          self::$error = $e->getMessage();
          return false;
        }
      }
      //删除
      public function remove($table, $condition, $options=array())
      {
        $options['w'] = 1;
        try {
          self::$mon->$table->remove($condition, $options);
          return true;
        }
        catch (MongoCursorException $e)
        {
          self::$error = $e->getMessage();
          return false;
        }
      }
      //查找
      public function find($table, $query_condition, $result_condition=array(), $fields=array())
      {
        $cursor = self::$mon->$table->find($query_condition, $fields);
        if (!empty($result_condition['start']))
        {
          $cursor->skip($result_condition['start']);
        }
        if (!empty($result_condition['limit']))
        {
          $cursor->limit($result_condition['limit']);
        }
        if (!empty($result_condition['sort']))
        {
          $cursor->sort($result_condition['sort']);
        }
        $result = array();
        try {
          while ($cursor->hasNext())
          {
            $result[] = $cursor->getNext();
          }
        }
        catch (MongoCursorTimeoutException $e)
        {
          self::$error = $e->getMessage();
          return false;
        }
        return $result;
      }
      //查找一条记录
      public function findOne($table, $condition, $fields=array())
      {
        return self::$mon->$table->findOne($condition, $fields);
      }
      //返回表的记录数
      public function count($table)
      {
        return self::$mon->$table->count();
      }
      //返回错误信息
      public function getError()
      {
        return self::$error;
      }
    }
    
    

    操作实例:

    use App\Http\Controllers\Api\MongdbCommonController;
    $db = MongdbCommonController::getInstance();
    $collection = 'tab';
    $data = array('tt' =>'sdsd',
     'pp'  => 'ssdsdf');
    //返回记录数
    echo $db->count($collection);
    //插入记录
    $db->insert($collection, array("id"=>2, "title"=>"asdqw"));
    //更新
    $db->update($collection, array("id"=>2),array('tt'=>'dfdfd',"gg"=>"bbb",'hh'=>'dfsdsd'));
    //查找记录
    echo 'pre>';
    print_r( $db->find($collection, array("tt"=>'dfdfd'), array("start"=>1,"limit"=>4)));
    //删除
    $db->remove($collection, array('tt' =>'sdsd'));
    
    

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP+MongoDB数据库操作技巧大全》、《PHP基于pdo操作数据库技巧总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • PHP封装的简单连接MongoDB类示例
    • PHP使用mongoclient简单操作mongodb数据库示例
    • php如何利用pecl安装mongodb扩展详解
    • TP5(thinkPHP5)框架mongodb扩展安装及特殊操作示例
    • PHP操作Mongodb封装类完整实例
    • mongodb和php的用法详解
    上一篇:Laravel框架队列原理与用法分析
    下一篇:thinkPHP5框架分页样式类完整示例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    php操作mongodb封装类与用法实例 php,操作,mongodb,封装,类,