/********************************************************************************* * InitPHP 2.0 國產PHP開發(fā)框架 Dao-Nosql-Mongo *------------------------------------------------------------------------------- * 版權所有: CopyRight By initphp.com * 您可以自由使用該源碼,但是在使用過程中,請保留作者信息。尊重他人勞動成果就是尊重自己 *------------------------------------------------------------------------------- * $Author:zhuliwww.it165.net * $Dtime:2011-10-09www.it165.net ***********************************************************************************/html' target='_blank'>class mongoInit { private $mongo; //mongo對象 private $db; //db mongodb對象數據庫 private $collection; //集合,相當于數據表 /** * 初始化Mongo * $config = array( * 'server' => ‘127.0.0.1' 服務器地址 * ‘port’ => '27017' 端口地址 * ‘option’ => array('connect' => true) 參數 * 'db_name'=> 'test' 數據庫名稱 * ‘username’=> 'zhuli' 數據庫用戶名 * ‘password’=> '123456' 數據庫密碼 * ) * Enter description here ... * @param unknown_type $config */ public function init($config = array()) { if ($config['server'] == '') $config['server'] = '127.0.0.1'; if ($config['port'] == '') $config['port'] = '27017'; if (!$config['option']) $config['option'] = array('connect' => true); $server = 'mongodb://' . $config['server'] . ':' . $config['port']; $this->mongo = new Mongo($server, $options); if ($config['db_name'] == '') $config['db_name'] = 'test'; $this->db = $this->mongo->selectDB($config['db_name']); if ($config['username'] != '' && $config['password'] != '') $this->db->authenticate($config['username'], $config['password']); } /** * 選擇一個集合,相當于選擇一個數據表 * @param string $collection 集合名稱 */ public function selectCollection($collection) { return $this->collection = $this->db->selectCollection($collection); } /** * 新增數據 * @param array $data 需要新增的數據 例如:array('title' => '1000', 'username' => 'xcxx') * @param array $option 參數 */ public function insert($data, $option = array()) { return $this->collection->insert($data, $option); } /** * 批量新增數據 * @param array $data 需要新增的數據 例如:array(0=>array('title' => '1000', 'username' => 'xcxx')) * @param array $option 參數 */ public function batchInsert($data, $option = array()) { return $this->collection->batchInsert($data, $option); } /** * 保存數據,如果已經存在在庫中,則更新,不存在,則新增 * @param array $data 需要新增的數據 例如:array(0=>array('title' => '1000', 'username' => 'xcxx')) * @param array $option 參數 */ public function save($data, $option = array()) { return $this->collection->save($data, $option); } /** * 根據條件移除 * @param array $query 條件 例如:array(('title' => '1000')) * @param array $option 參數 */ public function remove($query, $option = array()) { return $this->collection->remove($query, $option); } /** * 根據條件更新數據 * @param array $query 條件 例如:array(('title' => '1000')) * @param array $data 需要更新的數據 例如:array(0=>array('title' => '1000', 'username' => 'xcxx')) * @param array $option 參數 */ public function update($query, $data, $option = array()) { return $this->collection->update($query, $data, $option); } /** * 根據條件查找一條數據 * @param array $query 條件 例如:array(('title' => '1000')) * @param array $fields 參數 */ public function findOne($query, $fields = array()) { return $this->collection->findOne($query, $fields); } /** * 根據條件查找多條數據 * @param array $query 查詢條件 * @param array $sort 排序條件 array('age' => -1, 'username' => 1) * @param int $limit 頁面 * @param int $limit 查詢到的數據條數 * @param array $fields返回的字段 */ public function find($query, $sort = array(), $skip = 0, $limit = 0, $fields = array()) { $cursor = $this->collection->find($query, $fields); if ($sort) $cursor->sort($sort); if ($skip) $cursor->skip($skip); if ($limit) $cursor->limit($limit); return iterator_to_array($cursor); } /** * 數據統計 */ public function count() { return $this->collection->count(); } /** * 錯誤信息 */ public function error() { return $this->db->lastError(); } /** * 獲取集合對象 */ public function getCollection() { return $this->collection; } /** * 獲取DB對象 */ public function getDb() { return $this->db; } }PHP編程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答