initphp mongo

  1. /********************************************************************************* 

  2.  * InitPHP 2.0 国产PHP开发框架  Dao-Nosql-Mongo  

  3.  *------------------------------------------------------------------------------- 

  4.  * 版权所有: CopyRight By initphp.com 

  5.  * 您可以自由使用该源码,但是在使用过程中,请保留作者信息。尊重他人劳动成果就是尊重自己 

  6.  *------------------------------------------------------------------------------- 

  7.  * $Author:zhuli 

  8.  * $Dtime:2011-10-09  

  9. ***********************************************************************************/  

  10. class mongoInit {  

  11.   

  12.     private $mongo//mongo对象  

  13.     private $db//db mongodb对象数据库  

  14.     private $collection//集合,相当于数据表   

  15.       

  16.     /** 

  17.      * 初始化Mongo 

  18.      * $config = array( 

  19.      * 'server' => ‘127.0.0.1' 服务器地址 

  20.      * ‘port’   => '27017' 端口地址 

  21.      * ‘option’ => array('connect' => true) 参数 

  22.      * 'db_name'=> 'test' 数据库名称 

  23.      * ‘username’=> 'zhuli' 数据库用户名 

  24.      * ‘password’=> '123456' 数据库密码 

  25.      * ) 

  26.      * Enter description here ... 

  27.      * @param unknown_type $config 

  28.      */  

  29.     public function init($config = array()) {  

  30.         if ($config['server'] == '')  $config['server'] = '127.0.0.1';  

  31.         if ($config['port'] == '')  $config['port'] = '27017';  

  32.         if (!$config['option']) $config['option'] = array('connect' => true);  

  33.         $server = 'mongodb://' . $config['server'] . ':' . $config['port'];  

  34.         $this->mongo = new Mongo($server$options);  

  35.         if ($config['db_name'] == ''$config['db_name'] = 'test';  

  36.         $this->db = $this->mongo->selectDB($config['db_name']);  

  37.         if ($config['username'] != '' && $config['password'] != '')   

  38.             $this->db->authenticate($config['username'], $config['password']);  

  39.     }  

  40.       

  41.     /** 

  42.      * 选择一个集合,相当于选择一个数据表 

  43.      * @param string $collection 集合名称 

  44.      */  

  45.     public function selectCollection($collection) {  

  46.         return $this->collection = $this->db->selectCollection($collection);  

  47.     }  

  48.       

  49.     /** 

  50.      * 新增数据 

  51.      * @param array $data 需要新增的数据 例如:array('title' => '1000', 'username' => 'xcxx') 

  52.      * @param array $option 参数 

  53.      */  

  54.     public function insert($data$option = array()) {  

  55.         return $this->collection->insert($data$option);  

  56.     }  

  57.       

  58.     /** 

  59.      * 批量新增数据 

  60.      * @param array $data 需要新增的数据 例如:array(0=>array('title' => '1000', 'username' => 'xcxx')) 

  61.      * @param array $option 参数 

  62.      */  

  63.     public function batchInsert($data$option = array()) {  

  64.         return $this->collection->batchInsert($data$option);  

  65.     }  

  66.       

  67.     /** 

  68.      * 保存数据,如果已经存在在库中,则更新,不存在,则新增 

  69.      * @param array $data 需要新增的数据 例如:array(0=>array('title' => '1000', 'username' => 'xcxx')) 

  70.      * @param array $option 参数 

  71.      */  

  72.     public function save($data$option = array()) {  

  73.         return $this->collection->save($data$option);  

  74.     }  

  75.       

  76.     /** 

  77.      * 根据条件移除 

  78.      * @param array $query  条件 例如:array(('title' => '1000')) 

  79.      * @param array $option 参数 

  80.      */  

  81.     public function remove($query$option = array()) {  

  82.         return $this->collection->remove($query$option);  

  83.     }  

  84.       

  85.     /** 

  86.      * 根据条件更新数据 

  87.      * @param array $query  条件 例如:array(('title' => '1000')) 

  88.      * @param array $data   需要更新的数据 例如:array(0=>array('title' => '1000', 'username' => 'xcxx')) 

  89.      * @param array $option 参数 

  90.      */  

  91.     public function update($query$data$option = array()) {  

  92.         return $this->collection->update($query$data$option);  

  93.     }  

  94.       

  95.     /** 

  96.      * 根据条件查找一条数据 

  97.      * @param array $query  条件 例如:array(('title' => '1000')) 

  98.      * @param array $fields 参数 

  99.      */  

  100.     public function findOne($query$fields = array()) {  

  101.         return $this->collection->findOne($query$fields);  

  102.     }  

  103.       

  104.     /** 

  105.      * 根据条件查找多条数据 

  106.      * @param array $query 查询条件 

  107.      * @param array $sort  排序条件 array('age' => -1, 'username' => 1) 

  108.      * @param int   $limit 页面 

  109.      * @param int   $limit 查询到的数据条数 

  110.      * @param array $fields返回的字段 

  111.      */  

  112.     public function find($query$sort = array(), $skip = 0, $limit = 0, $fields = array()) {  

  113.         $cursor = $this->collection->find($query$fields);  

  114.         if ($sort)  $cursor->sort($sort);  

  115.         if ($skip)  $cursor->skip($skip);  

  116.         if ($limit$cursor->limit($limit);  

  117.         return iterator_to_array($cursor);  

  118.     }  

  119.       

  120.     /** 

  121.      * 数据统计 

  122.      */  

  123.     public function count() {  

  124.         return $this->collection->count();  

  125.     }  

  126.       

  127.     /** 

  128.      * 错误信息 

  129.      */  

  130.     public function error() {  

  131.         return $this->db->lastError();  

  132.     }  

  133.       

  134.     /** 

  135.      * 获取集合对象 

  136.      */  

  137.     public function getCollection() {  

  138.         return $this->collection;  

  139.     }  

  140.       

  141.     /** 

  142.      * 获取DB对象 

  143.      */  

  144.     public function getDb() {  

  145.         return $this->db;  

  146.     }  

  147.       

  148.       

  149. }  


你可能感兴趣的:(mongo)