国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php mongodb操作類 帶幾個簡單的例子

2024-05-04 23:49:23
字體:
來源:轉載
供稿:網友

之前VeVb武林網已經發過幾篇類似的文章,大家可以參考一下。

核心代碼:

class NewMongodb {    private $mongo;  //NewMongodb連接  private $curr_db_name;  private $curr_table_name;  private $error;  public $config;  public function getInstance($mongo_server, $flag=array())  {    static $NewMongodb_arr;    if (empty($flag['tag']))    {      $flag['tag'] = 'default';     }    if (isset($flag['force']) && $flag['force'] == true)    {      $mongo = new NewMongodb($mongo_server);      if (empty($NewMongodb_arr[$flag['tag']]))      {        $NewMongodb_arr[$flag['tag']] = $mongo;      }      return $mongo;    }    else if (isset($NewMongodb_arr[$flag['tag']]) && is_resource($NewMongodb_arr[$flag['tag']]))    {      return $NewMongodb_arr[$flag['tag']];    }    else    {      $mongo = new NewMongodb($mongo_server);      $NewMongodb_arr[$flag['tag']] = $mongo;      return $mongo;    }  }  /**   * 構造函數   * 支持傳入多個mongo_server(1.一個出問題時連接其它的server 2.自動將查詢均勻分發到不同server)   *   * 參數:   * $mongo_server:數組或字符串-array("127.0.0.1:1111", "127.0.0.1:2222")-"127.0.0.1:1111"   * $connect:初始化mongo對象時是否連接,默認連接   * $auto_balance:是否自動做負載均衡,默認是   *   * 返回值:   * 成功:mongo object   * 失?。篺alse   */  public 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 = $mongo_server;   }   try {    $this->mongo = new MongoClient($mongo_server, array('connect'=>$connect));   }   catch (MongoConnectionException $e)   {    $this->error = $e->getMessage();    return false;   }  }    /**  * 連接NewMongodb server  *  * 參數:無  *  * 返回值:  * 成功:true  * 失敗:false  */  public function connect()  {    try {      $this->mongo->connect();      return true;    }    catch (MongoConnectionException $e)    {      $this->error = $e->getMessage();      return false;    }  }    /**  * select db  *  * 參數:$dbname  *  * 返回值:無  */  public function selectDb($dbname)  {    $this->curr_db_name = $dbname;  }    /**  * 創建索引:如索引已存在,則返回。  *  * 參數:  * $table_name:表名  * $index:索引-array("id"=>1)-在id字段建立升序索引  * $index_param:其它條件-是否唯一索引等  *  * 返回值:  * 成功:true  * 失?。篺alse  */  public 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;    }  }  /**  * 插入記錄  *  * 參數:  * $table_name:表名  * $record:記錄  *  * 返回值:  * 成功:true  * 失敗:false  */  public 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;    }  }    /**  * 查詢表的記錄數  *  * 參數:  * $table_name:表名  *  * 返回值:表的記錄數  */  public function count($table_name)  {    $dbname = $this->curr_db_name;    return $this->mongo->$dbname->$table_name->count();  }    /**  * 更新記錄  *  * 參數:  * $table_name:表名  * $condition:更新條件  * $newdata:新的數據記錄  * $options:更新選擇-upsert/multiple  *  * 返回值:  * 成功:true  * 失?。篺alse  */  public function update($table_name, $condition, $newdata, $options=array())  {    $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;    }  }    /**  * 刪除記錄  *  * 參數:  * $table_name:表名  * $condition:刪除條件  * $options:刪除選擇-justOne  *  * 返回值:  * 成功:true  * 失?。篺alse  */  public function remove($table_name, $condition, $options=array())  {    $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;  }  }    /**  * 查找記錄  *  * 參數:  * $table_name:表名  * $query_condition:字段查找條件  * $result_condition:查詢結果限制條件-limit/sort等  * $fields:獲取字段  *  * 返回值:  * 成功:記錄集  * 失?。篺alse  */  public 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())      {        $result[] = $cursor->getNext();      }    }    catch (MongoConnectionException $e)    {      $this->error = $e->getMessage();      return false;    }    catch (MongoCursorTimeoutException $e)    {      $this->error = $e->getMessage();      return false;    }    return $result;  }    /**  * 查找一條記錄  *  * 參數:  * $table_name:表名  * $condition:查找條件  * $fields:獲取字段  *  * 返回值:  * 成功:一條記錄  * 失?。篺alse  */  public function findOne($table_name, $condition, $fields=array())  {    $dbname = $this->curr_db_name;    return $this->mongo->$dbname->$table_name->findOne($condition, $fields);  }    /**  * 獲取當前錯誤信息  *  * 參數:無  *  * 返回值:當前錯誤信息  */  public function getError()  {    return $this->error;  }  /*** NewMongodb類** examples:   * $mongo = new NewMongodb("127.0.0.1:11223");  * $mongo->selectDb("test_db");  * 創建索引  * $mongo->ensureIndex("test_table", array("id"=>1), array('unique'=>true));  * 獲取表的記錄  * $mongo->count("test_table");  * 插入記錄  * $mongo->insert("test_table", array("id"=>2, "title"=>"asdqw"));  * 更新記錄  * $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("c", array("title"=>"asdqw"), array("start"=>2,"limit"=>2,"sort"=>array("id"=>1)))  * 查找一條記錄  * $mongo->findOne("$mongo->findOne("ttt", array("id"=>1))", array("id"=>1));  * 刪除記錄  * $mongo->remove("ttt", array("title"=>"bbb"));  * 僅刪除一條記錄  * $mongo->remove("ttt", array("title"=>"bbb"), array("justOne"=>1));  * 獲取Mongo操作的錯誤信息  * $mongo->getError();  */}

 


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 德令哈市| 孝昌县| 阳朔县| 长治市| 米易县| 永泰县| 平凉市| 会宁县| 屏边| 玛曲县| 石家庄市| 璧山县| 晋城| 五台县| 邹城市| 大冶市| 江口县| 比如县| 杂多县| 紫金县| 秀山| 宝山区| 屏东市| 新巴尔虎右旗| 专栏| 鲁山县| 台中县| 渭南市| 综艺| 周宁县| 武强县| 临泽县| 津南区| 揭东县| 绩溪县| 泸水县| 黎城县| 临邑县| 文水县| 福鼎市| 裕民县|