PHP对MongoDB[NoSQL]数据库的操作


Posted in PHP onMarch 01, 2013

一、MongoDB简介

MongoDB (名称来自"humongous") 是一个可扩展的、高性能、开源、模式自由、面向文档的数据库,集文档数据库、键值对存储和关系型数据库的优点于一身。官方站点:http://www.mongodb.org/,MongoDB特点:

•面向文档存储(类JSON数据模式简单而强大)
•动态查询
•全索引支持,扩展到内部对象和内嵌数组
•查询记录分析
•快速,就地更新
•高效存储二进制大对象 (比如照片和视频)
•复制和故障切换支持
•Auto-Sharding自动分片支持云级扩展性
•MapReduce 支持复杂聚合
•商业支持,培训和咨询
二、安装MongoDB

安装MongoDB非常的简单,仅需下载压缩包解压运行命令即可,下载地址:http://www.mongodb.org/downloads,本文为windows平台,MongoDB运行命令:>bin/mongod。提示:首先要创建存储数据的文件夹,MongoDB 默认存储数据目录为 /data/db/ (或者 c:\data\db),当然你也可以修改成不同目录,只需要指定 --dbpath 参数,eg:
>bin/mongod --dbpath=d:\mgdata\db
三、安装MongoDB PHP扩展
根据自己的PHP版本下载PHP扩展:http://www.php.net/manual/en/mongo.installation.php#mongo.installation.windows,提示:
1、VC6适合Apache、VC9适合IIS;
2、Thread safe适合PHP以模块运行方式、Non-thread safe适合CGI运行方式。
修改php.ini,加入:extension=php_mongo.dll,重启Web服务器。
四、PHP示例
1、连接Mongo服务器

<?php  
//连接localhost:27017  
$conn = new Mongo();  
//连接远程主机默认端口  
$conn = new Mongo('test.com');  
//连接远程主机22011端口  
$conn = new Mongo('test.com:22011');  
//MongoDB有用户名密码  
$conn = new Mongo("mongodb://${username}:${password}@localhost");
//MongoDB有用户名密码并指定数据库blog  
$conn = new Mongo("mongodb://${username}:${password}@localhost/blog");  
//多个服务器  
$conn = new Mongo("mongodb://localhost:27017,localhost:27018");  
?>

2、指定数据库和数据集名(表名)
<?php  
//选择数据库blog  
$db = $conn->blog;  
//制定结果集(表名:users) 
$collection = $db->users;  
?> 
3、CRUD
<?php  
//新增  
$user = array('name' => 'caleng', 'email' => 'admin@admin.com');  
$collection->insert($user);  
//修改  
$newdata = array('$set' => array("email" => "test@test.com"));  
$collection->update(array("name" => "caleng"), $newdata);  
//删除  
$collection->remove(array('name'=>'caleng'), array("justOne" => true));  
//查找  
$cursor = $collection->find();  
var_dump($cursor);  
//查找一条  
$user = $collection->findOne(array('name' => 'caleng'), array('email'));  
var_dump($user);  
?> 
4、关闭连接
<?php  
$conn->close();  
?>
PHP 相关文章推荐
PHP动态图像的创建
Oct 09 PHP
php代码运行时间查看类代码分享
Aug 06 PHP
php使用curl检测网页是否被百度收录的示例分享
Jan 31 PHP
ThinkPHP中处理表单中的注意事项
Nov 22 PHP
PHP实现的简单mock json脚本分享
Feb 10 PHP
解决php的“It is not safe to rely on the system’s timezone settings”问题
Oct 08 PHP
PHP多维数组遍历方法(2种实现方法)
Dec 10 PHP
PHP字符串中抽取子串操作实例分析
Jun 22 PHP
Laravel 对某一列进行筛选然后求和sum()的例子
Oct 10 PHP
PHP与Web页面的交互示例详解一
Aug 04 PHP
聊聊 PHP 8 新特性 Attributes
Aug 19 PHP
PHP中多字节字符串操作实例详解
Aug 23 PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
Feb 28 #PHP
Apache中php.ini的设置方法
Feb 28 #PHP
PHP中如何定义和使用常量
Feb 28 #PHP
使用php判断浏览器的类型和语言的函数代码
Feb 28 #PHP
CI框架源码阅读,系统常量文件constants.php的配置
Feb 28 #PHP
PHP删除非空目录的函数代码小结
Feb 28 #PHP
PHP生成随机用户名和密码的实现代码
Feb 27 #PHP
You might like
用PHP将数据导入到Foxmail
2006/10/09 PHP
一步一步学习PHP(7) php 字符串相关应用
2010/03/05 PHP
PHP 解决utf-8和gb2312编码转换问题
2010/03/18 PHP
php生成数组的使用示例 php全组合算法
2014/01/16 PHP
php析构函数的简单使用说明
2015/08/24 PHP
php生成图片缩略图功能示例
2017/02/22 PHP
Ubuntu 16.04下安装PHP 7过程详解
2017/03/28 PHP
php从数据库中获取数据用ajax传送到前台的方法
2018/08/20 PHP
Javascript中的Split使用方法与技巧
2007/03/09 Javascript
JS中==与===操作符的比较
2009/03/21 Javascript
JavaScript 学习笔记(五)
2009/12/31 Javascript
jQuery.Autocomplete实现自动完成功能(详解)
2010/07/13 Javascript
jQuery的实现原理的模拟代码 -2 数据部分
2010/08/01 Javascript
JS 面向对象之神奇的prototype
2011/02/26 Javascript
javascript针对DOM的应用分析(三)
2012/04/15 Javascript
JS与C#编码解码
2013/12/03 Javascript
javascript中实现兼容JAVA的hashCode算法代码分享
2020/08/11 Javascript
JavaScript知识点总结(十)之this关键字
2016/05/31 Javascript
JS简单随机数生成方法
2016/09/05 Javascript
AngularJS入门教程之MVC架构实例分析
2016/11/01 Javascript
深入理解JavaScript中的预解析
2017/01/04 Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
2017/08/16 Javascript
使用vue-aplayer插件时出现的问题的解决
2018/03/02 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
2018/07/18 Javascript
vuejs前后端数据交互之从后端请求数据的实例
2018/08/11 Javascript
javascript 代码是如何被压缩的示例代码
2020/05/06 Javascript
python SVM 线性分类模型的实现
2019/07/19 Python
pandas按照列的值排序(某一列或者多列)
2020/12/13 Python
使用Python webdriver图书馆抢座自动预约的正确方法
2021/03/04 Python
美国高级音响品牌:Master&Dynamic
2018/07/05 全球购物
正宗的日本零食和糖果订阅盒:Bokksu
2019/11/21 全球购物
《一本男孩子必读的书》教学反思
2014/02/19 职场文书
文体活动实施方案
2014/03/27 职场文书
工作检讨书怎么写
2014/10/10 职场文书
垂直极限观后感
2015/06/08 职场文书
分享五个Node.js开发的优秀实践 
2022/04/07 NodeJs