`
student_lp
  • 浏览: 437930 次
  • 性别: 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 数据库工具

    MongoVUE是专为MongoDB设计的一款图形用户界面工具,它为管理和操作MongoDB数据库提供了一个直观且用户友好的界面,使得数据库的管理不再局限于命令行。 MongoVUE的主要功能包括: 1. **连接管理**:MongoVUE允许...

    springMvc配置mongo数据库

    有了MongoTemplate,我们就可以在服务类或DAO类中注入并使用它来执行查询、插入、更新和删除操作。例如,创建一个简单的User实体类,并创建一个MongoDB Repository接口: ```java public class User { @Id ...

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

    总的来说,"mongoTemplate工具类Dao层方法封装.zip"资源包应包含如何在Dao层优雅地使用MongoTemplate进行数据库操作的实例,涵盖了MongoDB的基本CRUD操作以及一些高级特性。学习并掌握这些知识,将有助于提高Java...

    Mongo数据库

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

    php5.3-php5.4mongo扩展

    MongoDB的PHP扩展(php_mongo)是PHP与MongoDB进行交互的重要工具,它提供了丰富的函数和类库,使得开发者能够方便地在PHP中操作MongoDB数据库。然而,由于版本差异和编译配置问题,有时找到适用于特定PHP版本的兼容...

    php_mongo_5.2.6.6

    总结,php_mongo_5.2.6.6扩展是PHP 5.2.6时代连接MongoDB的重要工具,它简化了数据操作,提升了开发效率。然而,随着技术的演进,开发者应关注更新的扩展和最佳实践,以充分利用最新功能并确保系统的安全性和性能。

    php5.4、5.5、5.6的php_mongo-1.6.6扩展

    总的来说,php_mongo-1.6.6扩展是PHP与MongoDB之间的一个桥梁,允许开发人员使用熟悉的PHP语法操作非关系型数据库。虽然现在已被新的mongodb扩展所取代,但对于还在使用PHP 5.4到5.6的项目来说,这是一个重要的工具...

    php5.5 mongodb 驱动 dll文件 32+64位 php_mongo.dll

    安装成功后,开发人员就可以在PHP中使用MongoDB的类和函数,如`MongoClient`和`MongoDB`,进行数据库操作。 总的来说,这个压缩包提供了PHP 5.5版本连接MongoDB数据库所需的驱动文件,对于那些使用PHP进行MongoDB...

    Mongo封装类

    总的来说,"Mongo封装类"是为方便PHP开发者使用MongoDB而创建的工具,它们简化了数据库操作,提高了开发效率。`MongoQB-master`可能就是这样一个工具,提供了一种面向对象的方式来构建和执行MongoDB查询。对于需要与...

    Excell导入Mongo工具类.rar

    标题中的"Excell导入Mongo工具类.rar"表明这是一个与Java编程相关的项目,它提供了一个工具类用于将Excel数据导入MongoDB数据库。MongoDB是一个流行的NoSQL数据库,它以JSON格式的文档存储数据,而非传统的表格结构...

    php5.6mongo扩展

    PHP 5.6 版本中的 MongoDB 扩展是一个用于在 PHP 应用程序中与 MongoDB 数据库交互的重要工具。MongoDB 是一个流行的开源、分布式文档数据库系统,它以其灵活性、可扩展性和高性能而受到开发者的青睐。PHP 的 ...

    mongodb数据库帮助文档

    - **Ruby支持**(Working with Mongo Objects and Classes in Ruby):介绍了在Ruby环境下如何操作MongoDB中的对象和类。 ### 系统架构与部署 - **生产环境推荐架构**(Recommended Production Architectures):...

    mongodb driver 集成mongo和mongodb扩展 log.php 发送日志类

    通过分析这些文件,开发者可以学习如何建立数据库连接,执行CRUD操作,以及如何通过log.php类记录和处理日志信息。 在实际应用中,了解如何使用MongoDB Driver进行数据操作是非常重要的。这包括理解BSON(Binary ...

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

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

    spring集成mongo所需jar

    综上所述,"spring集成mongo所需jar"涉及的关键知识点包括Spring Data MongoDB框架、MongoDB Java驱动、项目构建工具(如Maven或Gradle)的依赖管理以及MongoDB的集成配置和操作。通过正确引入这些jar文件并按照上述...

    mongo可视化工具

    MongoDB是一款广泛使用的开源文档型数据库,而"mongo可视化工具"则是为了帮助用户更直观、高效地管理和操作MongoDB数据库而设计的软件。这类工具通常提供了图形化的界面,使得数据库的查询、创建、修改和管理等工作...

    简单的对象数据库操作

    本文主要探讨的是如何进行简单的对象数据库操作,结合“源码”和“工具”的标签,我们可以推测这可能涉及到具体的编程实践和可能的开源工具使用。 首先,对象数据库与传统的关系型数据库(如MySQL、PostgreSQL)...

    PHP_Mongo_extension PHP5.2 -5.4 VC6 VC9

    PHP_Mongo_extension提供了丰富的函数和类,使得开发者可以执行以下操作: - **连接与断开**:`mongo()`函数用于创建到MongoDB服务器的连接,`MongoClient`类提供了更高级的连接选项。`close()`方法用于关闭连接。 ...

    mongo-cxx-driver

    MongoDB的C++驱动,即`mongo-cxx-driver`,是一个关键组件,...综上所述,`mongo-cxx-driver`是C++开发者与MongoDB数据库交互的重要工具,它提供了丰富的功能和灵活的接口,让开发者能够高效地利用MongoDB的强大功能。

    java 连接 MongoDB 工具类示例

    Java连接MongoDB工具类示例主要展示了如何在...通过上述知识点,你可以创建一个实用的Java工具类,用于连接MongoDB数据库并执行常见的CRUD操作。这将极大地简化你的开发流程,使你能够更好地利用MongoDB的强大功能。

Global site tag (gtag.js) - Google Analytics