mongo Table類文件 獲取MongoCursor(游標(biāo))的實(shí)現(xiàn)方法分析_PHP教程
推薦:計(jì)算php頁面運(yùn)行時(shí)間的函數(shù)介紹本篇文章是對(duì)計(jì)算php頁面運(yùn)行時(shí)間的函數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下 一個(gè)計(jì)算php頁面運(yùn)行時(shí)間的函數(shù)。 復(fù)制代碼 代碼如下: ?php /* @ 計(jì)算php程序運(yùn)行時(shí)間 */ function microtime_float() { list($usec, $sec) = explode( , microtime()); return ((float)$
MongoCursor Object
游標(biāo)類
Mongo
Config.php配置文件
Table.php(mongodb操作數(shù)據(jù)庫類文件)
Config.php配置文件
<?php
require_once 'Zend/Exception.php';
class Hrs_Mongo_Config
{
const VERSION = '1.7.0';
const DEFAULT_HOST = 'localhost';
const DEFAULT_PORT = 27017;
private static $host = self::DEFAULT_HOST ;
private static $port = self::DEFAULT_PORT ;
private static $options = array(
'connect' => true,
'timeout' => 30,
//'replicaSet' => '' //If this is given, the master will be determined by using the ismaster database command on the seeds
);
public static $conn = '';
public static $defaultDb = '';
public static $linkStatus = '';
public static function set($server = 'mongodb://localhost:27017', $options = array('connect' => true)) {
if(!$server){
$url = 'mongodb://'.self::$host.':'.self::$port;
}
if(is_array($server)){
if(isset($server['host'])){
self::$host = $server['host'];
}
if(isset($server['port'])){
self::$port = $server['port'];
}
if(isset($server['user']) && isset($server['pass'])){
$url = 'mongodb://'.$server['user'].':'.$server['pass'].'@'.self::$host.':'.self::$port;
}else{
$url = 'mongodb://'.self::$host.':'.self::$port;
}
}
if(is_array($options)){
foreach (self::$options as $o_k=>$o_v){
if(isset($options[$o_k]))
self::$options[$o_k] = $o_v;
}
}
try{
self::$conn = new Mongo($url, self::$options);
self::$linkStatus = 'success';
}catch (Exception $e){
self::$linkStatus = 'failed';
}
if(isset($server['database'])){
self::selectDB($server['database']);
}
}
public static function selectDB($database){
if($database){
try {
if(self::$linkStatus=='success')
self::$defaultDb = self::$conn->selectDB($database);
return self::$defaultDb;
}
catch(InvalidArgumentException $e) {
throw new Zend_Exception('Mongodb數(shù)據(jù)庫名稱不正確');
}
}else{
throw new Zend_Exception('Mongodb數(shù)據(jù)庫名稱不能為空');
}
}
}
Table.php(mongodb操作數(shù)據(jù)庫類文件)
<?php
require_once 'Hrs/Mongo/Config.php';
abstract class Hrs_Mongo_Table
{
protected $_db = '';
protected $_name = '';
protected $_data = array();
protected $c_options = array(
'fsync'=>true,
'safe'=>true
);
protected $u_options = array(
//'upsert'=>false,
'multiple'=>true,
'fsync'=>true,
'safe'=>true
);
/*
protected $r_options = array(
);*/
protected $d_options = array(
'fsync'=>true,
'justOne'=>false,
'safe'=>true
);
protected function _setAdapter($database=''){
if(!$database)
throw new Zend_Exception('Mongodb數(shù)據(jù)庫名稱不能為空');
Hrs_Mongo_Config::selectDB($database);
}
public function __construct() {
if(Hrs_Mongo_Config::$conn instanceof Mongo){
$name = $this->_name;
$defDb = Hrs_Mongo_Config::$defaultDb;
$this->_db = $defDb->$name;
}else{
throw new Zend_Exception('Mongodb服務(wù)器連接失敗');
}
}
public function insert($data){
if(!$this->testLink()) return false;
$ret = $this->_db->insert($data, $this->c_options);
return $ret;
}
public function update($data, $where){
if(!$this->testLink()) return false;
return $this->_db->update($where, $data, $this->u_options);
}
public function find($where=array(),$limit=0){
if($this->testLink()) {
if($limit>0){
$this->_data = $where ? $this->_db->find($where)->limit($limit)->snapshot() : $this->_db->find()->limit($limit)->snapshot();
}else{
$this->_data = $where ? $this->_db->find($where)->limit($limit)->snapshot() : $this->_db->find()->limit($limit)->snapshot();
}
}
return $this;
}
//find cursor
/*
* 獲取游標(biāo)對(duì)象
*/
public function look($where=array(),$fields=array()){
if($this->testLink()) {
if($fields){
return $where ? $this->_db->find($where,$fields): $this->_db->find()->fields($fields);
}else{
return $where ? $this->_db->find($where) : $this->_db->find();
}
}
return false;
}
public function delete($where){
if(!$this->testLink()) return false;
return $this->_db->remove($where, $this->d_options);
}
public function dropMe(){
if(!$this->testLink()) return false;
return $this->_db->drop();
}
public function __toString(){
return $this->_data;
}
public function toArray(){
$tmpData = array();
foreach($this->_data as $id=>$row){
$one_row = array();
foreach($row as $key=>$col){
$one_row[$key] = $col;
}
$one_row['_id'] = $id;
$tmpData[] = $one_row;
}
return $tmpData;
}
protected function testLink(){
return Hrs_Mongo_Config::$linkStatus == 'success' ? true :false;
}
}
分享:php 地區(qū)分類排序算法本篇文章是對(duì)使用php實(shí)現(xiàn)地區(qū)分類排序算法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下 寫一個(gè)函數(shù),將數(shù)據(jù) $array = array( 0=array(,河北), 1=array(,北京), 2=array(0,保定), 3=array(1,海淀), 4=array(3,中關(guān)村), 5=array(2,涿州) ); 處理后返回如下: 河北 -保定 --涿
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁面代碼執(zhí)行時(shí)間
- PHP中獎(jiǎng)概率的抽獎(jiǎng)算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對(duì)圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問控制的和運(yùn)算符優(yōu)先級(jí)介紹
- 關(guān)于PHP語言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實(shí)現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國(guó)語言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
PHP教程Rss訂閱編程教程搜索
PHP教程推薦
- 基于magic_quotes_gpc與magic_quotes_runtime的區(qū)別與使用介紹
- 談mySQL數(shù)據(jù)庫的UTF8中文網(wǎng)站全文檢索的實(shí)現(xiàn)
- 解讀PHP錯(cuò)誤報(bào)告
- PHP執(zhí)行批量mysql語句的解決方法
- 揭秘優(yōu)化php代碼42種方法
- PHP實(shí)例:用PHP編寫的網(wǎng)上調(diào)查投票系統(tǒng)
- PHP和JS實(shí)現(xiàn)普通HTTP上安全地傳輸密碼
- 詳細(xì)介紹php5編程中的異常處理
- php獲取本地圖片文件并生成xml文件輸出具體思路
- 如何使PHP和JS實(shí)現(xiàn)HTTP上安全地傳輸密碼
- 相關(guān)鏈接:
復(fù)制本頁鏈接| 搜索mongo Table類文件 獲取MongoCursor(游標(biāo))的實(shí)現(xiàn)方法分析
- 教程說明:
PHP教程-mongo Table類文件 獲取MongoCursor(游標(biāo))的實(shí)現(xiàn)方法分析。