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之对抗Web扫描器的脚本技巧
Oct 01 PHP
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
May 29 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
Nov 12 PHP
php实现图片缩放功能类
Dec 18 PHP
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
Jan 22 PHP
php随机显示图片的简单示例
Feb 15 PHP
php实现的常见排序算法汇总
Sep 08 PHP
php实现获取文件mime类型的方法
Feb 11 PHP
PHP查询快递信息的方法
Mar 07 PHP
4种PHP异步执行的常用方式
Dec 24 PHP
php in_array() 检查数组中是否存在某个值详解
Nov 23 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 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 park、unpark、ord 函数使用方法(二进制流接口应用实例)
2010/10/19 PHP
PHP实现提取一个图像文件并在浏览器上显示的代码
2012/10/06 PHP
PHP将二维数组某一个字段相同的数组合并起来的方法
2016/02/26 PHP
详解PHP防止盗链防止迅雷下载的方法
2017/04/26 PHP
PHP实现会员账号单唯一登录的方法分析
2019/03/07 PHP
Laravel框架实现抢红包功能示例
2019/10/31 PHP
jQuery选择头像并实时显示的代码
2010/06/27 Javascript
一款Jquery 分页插件的改造方法(服务器端分页)
2011/07/11 Javascript
AngularJS 最常用的功能汇总
2016/02/17 Javascript
JavaScript SHA1加密算法实现详细代码
2016/10/06 Javascript
vue.js实现价格格式化的方法
2017/05/23 Javascript
Angular客户端请求Rest服务跨域问题的解决方法
2017/09/19 Javascript
webpack external模块的具体使用
2018/03/10 Javascript
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
2018/03/21 Javascript
JavaScript事件对象深入详解
2018/12/30 Javascript
浅谈layer弹出层按钮颜色修改方法
2019/09/11 Javascript
利用Vue的v-for和v-bind实现列表颜色切换
2020/07/17 Javascript
JavaScript实现简单日历效果
2020/09/11 Javascript
[05:06]TI4西雅图DOTA2前线报道 海涛密探LGD训练
2014/07/09 DOTA
编写Python的web框架中的Model的教程
2015/04/29 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
2018/05/31 Python
Python列表生成式与生成器操作示例
2018/08/01 Python
Python中IP地址处理IPy模块的方法
2019/08/16 Python
CSS3 Flex 弹性布局实例代码详解
2018/11/01 HTML / CSS
Reebok官方旗舰店:美国知名健身品牌锐步
2019/01/07 全球购物
德国最大的服装、鞋子和配件在线商店之一:Outfits24
2019/07/23 全球购物
EJB实例的生命周期
2016/10/28 面试题
军训鉴定表自我鉴定
2014/02/13 职场文书
寒假家长评语大全
2014/04/16 职场文书
抗洪救灾先进集体事迹材料
2014/05/26 职场文书
企业文化理念标语
2014/06/10 职场文书
学校周年庆活动方案
2014/08/22 职场文书
社区班子对照检查材料
2014/08/27 职场文书
某药房的新员工入职告知书!
2019/07/15 职场文书
2019年妇科护士的自我鉴定(3篇)
2019/09/26 职场文书
SQL SERVER实现连接与合并查询
2022/02/24 SQL Server