`
student_lp
  • 浏览: 430532 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

php工具类之【mongo数据库操作类】

阅读更多
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’=> 'root' 数据库用户名
	 * ‘password’=> '123456' 数据库密码
	 * )
	 * Enter description here ...
	 * @param unknown_type $config
	 */
	public function connect($config = array()) {
		if($config['server'] == ''){
			$config['server'] = '127.0.0.1';
		}  
		if($config['port'] == ''){
			$config['port'] = '27017';
		}
		$options = array();
		if(!$config['option']){
			$options['connect'] = true;
		}else{
			$matches = array();
			preg_match_all("/(\w+):(\w+);/", $config['option'], $matches,PREG_SET_ORDER);
			foreach ($matches as $value){
				$options[$value[1]] = $value[2];
			}
		}
		$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);
        $result = array();
        while ($cursor->hasNext()){
        	$result[] = $cursor->getNext();    
        }
		return $result;
	}
	
	/**
	 * 数据统计
	 */
	public function toatalCount() {
		return $this->collection->count();
	}
	
	/**
	 * 错误信息
	 */
	public function error() {
		return $this->db->lastError();
	}
	
	/**
	 * 获取集合对象
	 */
	public function getCollection() {
		return $this->collection;
	}
	
	/**
	 * 获取DB对象
	 */
	public function getDb() {
		return $this->db;
	}
}

 

分享到:
评论

相关推荐

    Mongo数据库

    Mongo数据库,windows 32位平台下的程序包,解压之后配置环境变量即可使用。操作说明,http://blog.csdn.net/tian_yan_jing/article/details/7863958

    mongoTemplate工具类Dao层方法封装.zip

    该资源内容主要包含:两个版本常用mongoTemplate操作数据库集合语句的整理

    java针对mongo操作的封装,完全面向对象,无需修改,可直接使用

    完全面向对象的mongo封装,maven工程源码,可直接install导出jar包引用,支持基本的增删改查和分页等,使用反射对javaBean实体进行映射,所有方法参数只需要传javaBean就行了,支持带密码连接,即拿即用,无需修改。

    mongodb java Driver

    mongodb java Driver,具体使用请看我的博客:http://blog.csdn.net/lablenet

    java代码操作MongoDB

    运用mongo.jar开发JAVA代码操作数据库,内含一个基础的Test类,以及经过封装的工具类

    mongodb工具类

    Mongo DB 是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐。Mongo DB很好的实现了面向对象的思想(OO思想),在Mongo DB中 每一条记录都是一个Document对象。Mongo ...

    MsSqlToMongo MsSql转Mongo工具 v1.4官方版

    为您提供MsSqlToMongo MsSql转Mongo工具下载,MsSqlToMongo是一个数据转换工具,帮助您将数据从SQL Server传输到MongoDB。还能够帮助用户将数据从表转换为集合,保存和加载会话,重复执行操作,有效节省用户的时间。...

    SQLserver2016-数据库系统概述.pptx

    用户 用户 用户 数据库应用程序 应用开发工具 数据库管理系统 操作系统 数据库 数据库管理员 数据库系统 SQLserver2016-数据库系统概述全文共16页,当前为第2页。 数据库是指储存在计算机内有组织可共享的数据集合...

    MongoToMysql 数据转换工具 v1.4官方版

    为您提供MongoToMysql 数据转换工具下载,MongoToMysql是一个简单实用的数据转换工具,帮助您将数据从MongoDB传输到Mysql,将mongo数据库同步到mysql,界面简洁直观,操作简单方便。基本简介 MongoToMysql是一个...

    MongoDBUtil.java

    Mongo操作工具类,里面有增删改查的方法,很方便的操作,希望能帮助大家

    MongoDBBuff.zip

    mongodb驱动操作shell脚本 此文件包含的属于工具类 没有完全支持mongo的所有shell 除基本支持的功能外 其他的需要自己扩展

    零学习Mongodb

    零学习Mongodb,压缩文件中包括MongoDB安装文件、查询分析工具、MongoDB相关配置、相关文档、相关DLL、Mongodb帮助类、操作数据库类。完全兼容C#,Java则需要自行修改。

    java的MongoUtil

    java操作mongodb的util工具类,其中主要包括了增删改查

    最佳

    具有类组件的CV工具...状态,道具,输入,列表 具有功能组件的CV工具...生命周期方法,挂钩 记忆游戏 商店...路由器 TDD xxxx | 基本 节点 库目录...节点,Express,Mongo ... CRUD,MVC,路由和控制器,视图模

Global site tag (gtag.js) - Google Analytics