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 相关文章推荐
require(),include(),require_once()和include_once()的异同
Jan 02 PHP
php zip文件解压类代码
Dec 02 PHP
使用PHP实现二分查找算法代码分享
Jun 24 PHP
解析php session_set_save_handler 函数的用法(mysql)
Jun 29 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
Jun 30 PHP
PHP获取数组最后一个值的2种方法
Jan 21 PHP
PHP中实现crontab代码分享
Mar 26 PHP
PHP编程入门的基本语法知识点总结
Jan 26 PHP
PHP实现可自定义样式的分页类
Mar 29 PHP
thinkPHP+LayUI 流加载实现功能
Sep 27 PHP
laravel validate 设置为中文的例子(验证提示为中文)
Sep 29 PHP
PHP实现文件上传后台处理脚本
Mar 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
JavaScript创建命名空间的5种写法
2014/06/24 PHP
PHP实现对图片的反色处理功能【测试可用】
2018/02/01 PHP
laravel框架 laravel-admin上传图片到oss的方法
2019/10/13 PHP
ie和firefox不兼容的解决方法集合
2009/04/28 Javascript
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
JavaScript 5 新增 Array 方法实现介绍
2012/02/06 Javascript
JQuery获取表格数据示例代码
2014/05/26 Javascript
判断复选框是否被选中的两种方法
2014/06/04 Javascript
IE6/IE7中JavaScript json提示缺少标识符、字符串或数字问题处理
2014/12/16 Javascript
js实现带农历和八字等信息的日历特效
2016/05/16 Javascript
jQuery ready()和onload的加载耗时分析
2016/09/08 Javascript
利用JS实现页面删除并重新排序功能
2016/12/09 Javascript
Vue中使用sass实现换肤功能
2018/09/07 Javascript
JavaScript偏函数与柯里化实例详解
2019/03/27 Javascript
实例详解带参数的 npm script
2019/05/28 Javascript
NodeJS实现一个聊天室功能
2019/11/25 NodeJs
python 迭代器和iter()函数详解及实例
2017/03/21 Python
Python 删除整个文本中的空格,并实现按行显示
2018/07/24 Python
Python设计模式之策略模式实例详解
2019/01/21 Python
解决Django生产环境无法加载静态文件问题的解决
2019/04/23 Python
简单的命令查看安装的python版本号
2020/08/28 Python
jupyter notebook快速入门及使用详解
2020/11/13 Python
Pycharm创建python文件自动添加日期作者等信息(步骤详解)
2021/02/03 Python
Python爬虫分析微博热搜关键词的实现代码
2021/02/22 Python
Vans(范斯)新西兰官方网站:美国原创极限运动品牌
2020/09/19 全球购物
好习惯伴我成长演讲稿
2014/05/21 职场文书
应聘护士求职信
2014/07/21 职场文书
2014学习优秀共产党员先进事迹材料思想汇报
2014/09/14 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/10/28 职场文书
爱心捐款感谢信
2015/01/20 职场文书
音乐教师求职信范文
2015/03/20 职场文书
仰望星空观后感
2015/06/10 职场文书
安全学习心得体会范文
2016/01/18 职场文书
敬业奉献模范事迹材料(2016精选版)
2016/02/26 职场文书
酒店工程部的岗位职责汇总大全
2019/10/23 职场文书
分享几个简单MySQL优化小妙招
2022/03/31 MySQL