成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > PHP mongodb操作類定義與用法示例【適合mongodb2.x和mongodb3.x】

PHP mongodb操作類定義與用法示例【適合mongodb2.x和mongodb3.x】

熱門標簽:高識別電銷機器人 拉薩打電話機器人 寶安400電話辦理 電銷機器人-快迭智能 沈陽人工智能電銷機器人公司 h5 地圖標注 智能外呼電銷系統(tǒng) 合肥外呼系統(tǒng)app 哈爾濱400電話辦理到易號網(wǎng)

本文實例講述了PHP mongodb操作類定義與用法。分享給大家供大家參考,具體如下:

在別人基礎上修改的mongodb操作類,適合mongodb2.x和mongodb3.x

?php
/*** Mongodb類**
 examples:
* $mongo = new HMongodb("127.0.0.1:11223");
* $mongo->selectDb("test_db");
* 創(chuàng)建索引
* $mongo->ensureIndex("test_table", array("id"=>1), array('unique'=>true));
* 獲取表的記錄
* $mongo->count("test_table");
* 插入記錄
* $mongo->insert("test_table", array("id"=>2, "title"=>"asdqw"));
* 更新記錄 array('$set'=>$newdata) 只修改指定字段
* $mongo->update("test_table", array("id"=>1),array("id"=>1,"title"=>"bbb"));
* 更新記錄-存在時更新,不存在時添加-相當于set
* $mongo->update("test_table", array("id"=>1),array("id"=>1,"title"=>"bbb"),array("upsert"=>1));
* 查找記錄
* $mongo->find("test_table", array("title"=>"asdqw"), array("start"=>2,"limit"=>2,"sort"=>array("id"=>1)))
* 查找一條記錄
* $mongo->findOne("test_table", array("id"=>1));
* 刪除記錄
* $mongo->remove("ttt", array("title"=>"bbb"));
* 僅刪除一條記錄
* $mongo->remove("ttt", array("title"=>"bbb"), array("justOne"=>1));
* 獲取Mongo操作的錯誤信息
* $mongo->getError();
*/
class HMongodb {
  public $_idType=1;//主鍵類型 1 string 0 obj
  //Mongodb連接
  var $mongo;
  var $curr_db_name;
  var $curr_table_name;
  var $error;
  /**
  * 構造函數(shù)
  * 支持傳入多個mongo_server(1.一個出問題時連接其它的server 2.自動將查詢均勻分發(fā)到不同server)
  *
  * 參數(shù):
  * $mongo_server:數(shù)組或字符串-array("127.0.0.1:1111", "127.0.0.1:2222")-"127.0.0.1:1111"
  * $connect:初始化mongo對象時是否連接,默認連接
  * $auto_balance:是否自動做負載均衡,默認是
  *
  * 返回值:
  * 成功:mongo object
  * 失?。篺alse
  */
  function __construct($mongo_server, $connect=true, $auto_balance=true)
  {
    if (is_array($mongo_server))
    {
      $mongo_server_num = count($mongo_server);
      if ($mongo_server_num > 1  $auto_balance)
      {
        $prior_server_num = rand(1, $mongo_server_num);
        $rand_keys = array_rand($mongo_server,$mongo_server_num);
        $mongo_server_str = $mongo_server[$prior_server_num-1];
        foreach ($rand_keys as $key)
        {
          if ($key != $prior_server_num - 1)
          {
            $mongo_server_str .= ',' . $mongo_server[$key];
          }
        }
      }
      else
      {
        $mongo_server_str = implode(',', $mongo_server);
      }         }
    else
    {
      $mongo_server_str = trim($mongo_server);
      //$config_arr=explode('/',$mongo_server);
      //$this->curr_db_name = array_pop($config_arr);
      $last_index=strrpos($mongo_server_str,'/');
      $db_name=substr($mongo_server_str,$last_index+1,strlen($mongo_server_str));
      $this->curr_db_name = $db_name;//獲取dbname
      //print_r($db_name);exit;
    }
    try {
      $this->mongo = new MongoClient($mongo_server, array('connect'=>$connect));
    }
    catch (MongoConnectionException $e)
    {
      $this->error = $e->getMessage();
      return false;
    }
  }
  function getInstance($mongo_server, $flag=array())
  {
    static $mongodb_arr;
    if (empty($flag['tag']))
    {
      $flag['tag'] = 'default';     }
    if (isset($flag['force'])  $flag['force'] == true)
    {
      $mongo = new HMongodb($mongo_server);
      if (empty($mongodb_arr[$flag['tag']]))
      {
        $mongodb_arr[$flag['tag']] = $mongo;
      }
      return $mongo;
    }
    else if (isset($mongodb_arr[$flag['tag']])  is_resource($mongodb_arr[$flag['tag']]))
    {
      return $mongodb_arr[$flag['tag']];
    }
    else
    {
      $mongo = new HMongodb($mongo_server);
      $mongodb_arr[$flag['tag']] = $mongo;
      return $mongo;         }     }
  /**
  * 連接mongodb server
  *
  * 參數(shù):無
  *
  * 返回值:
  * 成功:true
  * 失敗:false
  */
  function connect()
  {
    try {
      $this->mongo->connect();
      return true;
    }
    catch (MongoConnectionException $e)
    {
      $this->error = $e->getMessage();
      return false;
    }
  }
  /**
  * select db
  *
  * 參數(shù):$dbname
  *
  * 返回值:無
  */
  function selectDb($dbname)
  {
    $this->curr_db_name = $dbname;
  }
  /**
  * 創(chuàng)建索引:如索引已存在,則返回。
  *
  * 參數(shù):
  * $table_name:表名
  * $index:索引-array("id"=>1)-在id字段建立升序索引
  * $index_param:其它條件-是否唯一索引等
  *
  * 返回值:
  * 成功:true
  * 失敗:false
  */
  function ensureIndex($table_name, $index, $index_param=array())
  {
    $dbname = $this->curr_db_name;
    $index_param['safe'] = 1;
    try {
      $this->mongo->$dbname->$table_name->ensureIndex($index, $index_param);
      return true;
    }
    catch (MongoCursorException $e)
    {
      $this->error = $e->getMessage();
      return false;
    }
  }
  /**
  * 插入記錄
  *
  * 參數(shù):
  * $table_name:表名
  * $record:記錄
  *
  * 返回值:
  * 成功:true
  * 失?。篺alse
  */
  function insert($table_name, $record)
  {
    $dbname = $this->curr_db_name;
    try {
      $this->mongo->$dbname->$table_name->insert($record, array('safe'=>true));
      return true;
    }
    catch (MongoCursorException $e)
    {
      $this->error = $e->getMessage();
      return false;
    }
  }
  /**
  * 查詢表的記錄數(shù)
  *
  * 參數(shù):
  * $table_name:表名
  *
  * 返回值:表的記錄數(shù)
  */
  function count($table_name,$query_condition=array())
  {
    $dbname = $this->curr_db_name;
    return $this->mongo->$dbname->$table_name->find($query_condition)->count();
  }
  //$newdata存在有_id則更新 不存在則插入
  function save($table_name, $newdata) {
    $dbname = $this->curr_db_name;
    if($this->_idType  $newdata['_id']){
      $newdata['_id']=new MongoId($newdata['_id']);
    }
    return $this->mongo->$dbname->$table_name->save($newdata);
  }
  /**
  * 更新記錄
  *
  * 參數(shù):
  * $table_name:表名
  * $condition:更新條件
  * $newdata:新的數(shù)據(jù)記錄
  * $options:更新選擇-upsert/multiple
  *
  * 返回值:
  * 成功:true
  * 失?。篺alse
  */
  function update($table_name, $condition, $newdata, $options=array())
  {  if($this->_idType  $condition['_id']){
      $condition['_id']=new MongoId($condition['_id']);
    }
    $dbname = $this->curr_db_name;
    $options['safe'] = 1;
    if (!isset($options['multiple']))
    {
      $options['multiple'] = 0;     }
    try {
      $this->mongo->$dbname->$table_name->update($condition, $newdata, $options);
      return true;
    }
    catch (MongoCursorException $e)
    {
      $this->error = $e->getMessage();
      return false;
    }     }
  /**
  * 刪除記錄
  *
  * 參數(shù):
  * $table_name:表名
  * $condition:刪除條件
  * $options:刪除選擇-justOne
  *
  * 返回值:
  * 成功:true
  * 失?。篺alse
  */
  function remove($table_name, $condition, $options=array())
  {
    if($this->_idType  $condition['_id']){
      $condition['_id']=new MongoId($condition['_id']);
    }
    $dbname = $this->curr_db_name;
    $options['safe'] = 1;
    try {
      $this->mongo->$dbname->$table_name->remove($condition, $options);
      return true;
    }
    catch (MongoCursorException $e)
    {
      $this->error = $e->getMessage();
      return false;
    }     }
  /**
  * 查找記錄
  *
  * 參數(shù):
  * $table_name:表名
  * $query_condition:字段查找條件
  * $result_condition:查詢結果限制條件-limit/sort等
  * $fields:獲取字段
  *
  * 返回值:
  * 成功:記錄集
  * 失?。篺alse
  */
  function find($table_name, $query_condition, $result_condition=array(), $fields=array())
  {
    $dbname = $this->curr_db_name;
    $cursor = $this->mongo->$dbname->$table_name->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())
      {
        $row= $cursor->getNext();
        //print_r($cursor->getNext());exit;
        if($this->_idType  is_object($row['_id'])){
          $row['_id']=$row['_id']->__toString();//轉(zhuǎn)換字符串
        }
        $result[] =$row;
      }
    }
    catch (MongoConnectionException $e)
    {
      $this->error = $e->getMessage();
      return false;
    }
    catch (MongoCursorTimeoutException $e)
    {
      $this->error = $e->getMessage();
      return false;
    }
    return $result;
  }
  /**
  * 查找一條記錄
  *
  * 參數(shù):
  * $table_name:表名
  * $condition:查找條件
  * $fields:獲取字段
  *
  * 返回值:
  * 成功:一條記錄
  * 失敗:false
  */
  function findOne($table_name, $condition, $fields=array())
  {
    if($this->_idType  $condition['_id']){
      $condition['_id']=new MongoId($condition['_id']);
    }
    $dbname = $this->curr_db_name;
    $row=$this->mongo->$dbname->$table_name->findOne($condition, $fields);
    if($this->_idType  is_object($row['_id'])){
      $row['_id']=$row['_id']->__toString();//轉(zhuǎn)換字符串
    }
    return $row;
  }
  /**
  * 獲取當前錯誤信息
  *
  * 參數(shù):無
  *
  * 返回值:當前錯誤信息
  */
  function getError()
  {
    return $this->error;
  }
  //返回原生mongodb collection集合對象
  function getCollection($table_name){
    $dbname = $this->curr_db_name;
    return $this->mongo->$dbname->$table_name;
  }
  //分組統(tǒng)計
  function group($table_name,$keys,$initial,$reduce,$condition){
    $dbname = $this->curr_db_name;
    $g = $this->mongo->$dbname->$table_name->group($keys, $initial, $reduce,$condition);
    return $g;
  }
}

更多關于PHP相關內(nèi)容感興趣的讀者可查看本站專題:《PHP+MongoDB數(shù)據(jù)庫操作技巧大全》、《PHP基于pdo操作數(shù)據(jù)庫技巧總結》、《php面向?qū)ο蟪绦蛟O計入門教程》、《php字符串(string)用法總結》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • php封裝的mongodb操作類代碼
  • PHP實現(xiàn)的MongoDB數(shù)據(jù)庫操作類分享
  • php實現(xiàn)的mongodb操作類
  • PHP實現(xiàn)的mongoDB數(shù)據(jù)庫操作類完整實例
  • php實現(xiàn)的mongodb操作類實例
  • php實現(xiàn)的mongoDB單例模式操作類
  • php mongodb操作類 帶幾個簡單的例子
  • MongoDB操作類封裝實例代碼

標簽:張家口 成都 泰州 山東 威海 梅州 巴中 林芝

巨人網(wǎng)絡通訊聲明:本文標題《PHP mongodb操作類定義與用法示例【適合mongodb2.x和mongodb3.x】》,本文關鍵詞  PHP,mongodb,操作,類,定義,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP mongodb操作類定義與用法示例【適合mongodb2.x和mongodb3.x】》相關的同類信息!
  • 本頁收集關于PHP mongodb操作類定義與用法示例【適合mongodb2.x和mongodb3.x】的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    在线视频日韩一区| 国产一区二区三区视频播放| 日韩成人一区二区| 黄色精品一区| 黑人巨大精品欧美一区| 精品国产一区二区三区在线观看| 欧美日韩一区在线观看视频| 国产性猛交普通话对白| 欧美理论电影在线精品| 国产精品调教| 天堂а√在线中文在线| 日韩综合网站| 精品成人av一区| 91porn在线视频| 特色特色大片在线| 自拍偷拍亚洲在线| 久久久久久久久久久久网站| 无码人妻精品一区二区三区不卡| 久久久99免费| 丁香六月久久综合狠狠色| 成全电影大全在线观看| 久热在线视频精品网站| 成人欧美一区二区三区黑人孕妇| 新天天拍日日拍狠狠拍| 国产中文日韩欧美| 亚洲精品一区二区口爆| 免费看污片的网站| 久久久久国产成人精品亚洲午夜| 偷窥少妇高潮呻吟av久久免费| 中文字幕永久在线视频| 亚洲欧美在线观看| 日本护士做爰视频| 欧美一区二区视频观看视频| 欧美性开放视频| 国产高清免费视频| 欧洲成人午夜精品无码区久久| 可以免费看毛片的网站| 成人av网在线| 99综合电影在线视频| 亚州欧美精品suv| 国产成人在线小视频| 手机av在线免费观看| 日韩三级在线免费观看| 国产黄色小视频网站| 欧美激情另类| 欧洲vs亚洲vs国产| 久久精品国产成人一区二区三区| 毛片aaaaaa| 最近久乱中文字幕| 狠狠躁狠狠躁视频专区| 亚洲视频 欧美视频| 亚洲成人午夜在线| 亚洲精品手机在线观看| 欧美黄色一级大片| 无码精品视频一区二区三区| 91在线看www| 最新在线地址| 51精品视频一区二区三区| 岛国片av在线| 国产麻豆午夜三级精品| 国产欧美91| 亚洲成人在线网站| 精品久久久久亚洲| 国产成人99久久亚洲综合精品| 国内精品伊人久久| 久久深夜福利| 动漫成人在线| 韩国一区二区三区在线观看| 色94色欧美sute亚洲线路一久| 欧美日韩一级大片网址| 国产日韩在线看片| 中文日韩在线视频| 成人动态视频| 亚洲午夜电影在线| 国产精品午夜一区二区欲梦| 69xxx视频hd| 在线视频不卡一区二区三区| 久久婷婷国产综合国色天香| 91精品国产91久久久久久最新| 午夜影院欧美| 影音先锋在线一区| 精品一区二区三区四区在线| 日韩视频免费观看| 精品在线观看国产| 久久亚洲精品无码va白人极品| www..com国产| 亚洲天堂2016| 综合在线一区| 精品无人乱码一区二区三区| 精品国产一区二区三区四区| 亚洲熟妇无码另类久久久| 国产乱码字幕精品高清av| cao在线观看| 国产成人禁片免费观看| 国产情人综合久久777777| 无码人妻丰满熟妇奶水区码| 在线永久免费观看黄网站| 欧美日韩第一区日日骚| 99蜜桃在线观看免费视频网站| 密臀av在线播放| 欧美1o一11sex性hdhd| 亚洲色图一二三区| 性人久久久久| 羞羞在线视频| 午夜精品国产精品大乳美女| 久久激五月天综合精品| 小黄文在线观看| 欧美tickling网站挠脚心| 精品美女www爽爽爽视频| av在线电影网站| 在线看片第一页欧美| 热草久综合在线| 久久99亚洲精品| 亚洲欧美综合图片| 国产精品毛片久久| 日韩**一区毛片| 人妻激情偷乱频一区二区三区| 在线免费日韩片| 亚洲中文字幕在线观看| 99这里有精品视频| 裸体素人女欧美日韩| 日韩欧美一级特黄在线播放| 99久久综合狠狠综合久久aⅴ| 中文字幕在线网址| 女人天堂av手机在线| 九九热免费精品视频| 不卡一区二区在线| 亚洲精品乱码久久久久久蜜桃91| 国产成人欧美日韩在线电影| 性欧美大战久久久久久久久| 浮力影院欧美三级日本三级| 欧美理论视频| 国产欧美 在线欧美| 日本欧美一级片| 国产按摩一区二区三区| 91啪九色porn原创视频在线观看| 电影一区二区| 少妇免费毛片久久久久久久久| 久久久亚洲欧洲日产国码αv| 日本一区视频在线观看| 国产精品美女久久久久av超清| 综合一区在线| 永久久久免费浮力影院| 久久精品视频免费播放| 1000部国产精品成人观看| 黄色成人在线网站| 国产激情视频网址| 中文字幕永久在线不卡| 一卡二卡三卡在线观看| 亚洲中字在线| 鲁丝片一区二区三区| 高清性色生活片在线观看| 免费在线观看日韩av| www久久久久| 羞羞的视频免费| 色噜噜亚洲精品中文字幕| 免费在线视频你懂的| 极品中文字幕一区| 久久久久久97三级| 人妻视频一区二区三区| 国产一级黄色大片| 九九视频这里只有精品| 麻豆传媒一区二区| 国产福利视频一区二区| av在线不卡精品| 清纯唯美激情亚洲| 欧美变态视频| 26uuu精品一区二区三区四区在线| 国产欧美日韩视频一区二区三区| 欧美日韩精品在线一区二区| 久久精品欧洲| 亚洲精品影视在线| 亚洲自拍第二页| 日本一本在线免费福利| 亚洲一区美女视频在线观看免费| 国产精品成人一区二区三区吃奶| www.超碰97| 亚洲最大的成人av| 中文字幕视频精品一区二区三区| 欧美片一区二区三区| 在线不卡视频| 久久国内精品自在自线400部| 国产在线青青草| 国产一区二区三区免费看| 亚洲免费成人av电影| 天堂v视频永久在线播放| 欧美亚洲一级二级| 亚州综合一区| 亚洲综合欧美在线| 91精品久久久久久久久99蜜臂| 毛片毛片毛片毛片毛| 国产亚洲精品久久久久婷婷瑜伽| 国产一区精品| 麻豆精品一区二区av白丝在线| 五月精品视频| 亚洲一区二区视频在线| 麻豆av一区二区三区久久| 日韩国产欧美一区二区三区| www.成人在线.com| 99ri日韩精品视频| 中文字幕无码乱码人妻日韩精品| 狠狠操图片视频| 成人免费视频观看视频| 日本少妇裸体做爰| 美女在线免费视频| 欧美激情第99页| 欧美日韩系列| 亚洲在线视频一区| 久久爱www成人| 日韩欧美四区| 艳妇乳肉亭妇荡乳av| 亚洲国产成人av好男人在线观看| 丁香花高清电影在线观看完整版| 欧美成人综合网站| 亚洲AV无码精品自拍| 色婷婷精品久久二区二区蜜臀av| 国精产品一区一区三区有限在线| 日本电影亚洲天堂| 久久亚洲精华国产精华液| 石原莉奈在线亚洲二区| 亚洲成熟丰满熟妇高潮xxxxx| 久久精品国产亚洲AV无码麻豆| 最近免费中文字幕在线第一页| 正在播放亚洲1区| 水蜜桃久久夜色精品一区| 四虎永久在线精品免费网址| 日韩福利视频导航| 亚洲毛片在线免费| 天天干 天天插| 亚洲第一视频网| 亚洲一卡二卡三卡四卡| 亚洲在线观看网站| 夜夜嗨yeyeh| 欧美极品一区二区三区| 人妻av无码一区二区三区| 欧美日韩一区二区在线免费观看| 超碰福利在线观看| 精品一区二区三区免费观看| 国产一卡2卡3卡免费网站| 91在线播放网址| 国产在线播放不卡| 高清无码一区二区在线观看吞精| 欧美一区二区三区不卡视频| 久久韩国免费视频| 欧美中文字幕在线观看| 亚洲视频视频在线| 亚洲黄网站在线观看| 亚洲中文字幕无码av永久| 99精品视频在线观看免费播放| 99re视频在线播放| 中文日韩在线视频| 大胆日韩av| 91蝌蚪|人| 日韩av在线免费观看不卡| siro系绝美精品系列| 亚洲资源在线看| 99视频超级精品| 国产三级在线观看完整版| 麻豆91在线| www.尤物.com| 久久国产精品波多野结衣| 性人久久久久| 精品一区二区精品| 影视先锋av资源站| 99久久国产综合精品五月天喷水| 亚洲一区二区三区影院| 色拍拍在线精品视频8848| 国产精品毛片一区视频| 中文字幕 国产精品| 韩国理伦片久久电影网| av网站免费在线观看| 女人18毛片九区毛片在线| 亚洲精品tv久久久久久久久久| 精品无码国产污污污免费网站| 劲爆欧美第一页| 久久天堂影院| 黄色大片在线观看| 亚洲欧美精品一区| av今日在线| 国产小视频91| 成人午夜在线免费| 尤物视频一区二区| 91在线无精精品白丝| 色黄视频在线| 天堂网一区二区| 亚洲成人77777| 久久久精品国产免大香伊| 日韩在线亚洲| 男男一级淫片免费播放| brazzers欧美精品| 国产精品网站免费| 最大av网站| 中日韩午夜理伦电影免费| 久久中文精品| 久久国产精品网| 美女胸又www又黄的网站| 精品一区二区三区在线观看l| 中文在线免费| 一级黄色片网站| 成年网址网站在线观看| avtt香蕉久久| 中文字幕人妻一区二| av手机在线观看| 国产免费a级片| 四虎影视永久免费在线观看一区二区三区| 91精品国产色综合久久久蜜香臀| 精品亚洲免费视频| 欧美日韩一区中文字幕| 亚洲aⅴ天堂av在线电影软件| 久久电影网电视剧免费观看| 成人一区二区三区视频在线观看| av五月天在线| 老熟妇高潮一区二区高清视频| www.8ⅹ8ⅹ羞羞漫画在线看| 成人免费观看在线视频| 成人的网站免费观看| 自由日本语热亚洲人| 亚洲国产激情一区二区三区| 制服诱惑一区| 天天干天天爽天天操| 亚洲av成人片无码| 在线日本高清免费不卡| 国产一区二区久久精品| 一本大道伊人av久久综合| av丝袜天堂网| 成人黄网18免费观看的网站| 一区二区日韩av| 国产亚洲精品成人av久久ww|