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调用Linux的命令行执行文件压缩命令
Jan 27 PHP
PHP 解决session死锁的方法
Jun 20 PHP
php实现的发送带附件邮件类实例
Sep 22 PHP
Yii中CGridView关联表搜索排序方法实例详解
Dec 03 PHP
php浏览历史记录的方法
Mar 10 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
Apr 21 PHP
ThinkPHP中where()使用方法详解
Apr 19 PHP
php获取指定数量随机字符串的方法
Feb 06 PHP
thinkPHP5框架设置404、403等http状态页面的方法
Jun 05 PHP
php 后端实现JWT认证方法示例
Sep 04 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
Oct 09 PHP
PHP 实现 WebSocket 协议原理与应用详解
Apr 22 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简单系统查询模块代码打包下载
2008/06/07 PHP
php 小乘法表实现代码
2009/07/16 PHP
php 对输入信息的进行安全过滤的函数代码
2012/06/29 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
js常用代码段收集
2011/10/28 Javascript
自己写的Javascript计算时间差函数
2013/10/28 Javascript
jquery ajax应用中iframe自适应高度问题解决方法
2014/04/12 Javascript
js代码延迟一定时间后执行一个函数的实例
2017/02/15 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
关于meta viewport中target-densitydpi属性详解(推荐)
2017/08/18 Javascript
jQuery Validate插件ajax方式验证输入值的实例
2017/12/21 jQuery
vue v-model实现自定义样式多选与单选功能
2018/07/05 Javascript
在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法
2018/10/25 Javascript
vuex的module模块用法示例
2018/11/12 Javascript
基于vue写一个全局Message组件的实现
2019/08/15 Javascript
json解析大全 双引号、键值对不在一起的情况
2019/12/06 Javascript
用vue 实现手机触屏滑动功能
2020/05/28 Javascript
使用Vue-cli 中为单独页面设置背景图片铺满全屏
2020/07/17 Javascript
python利用hook技术破解https的实例代码
2013/03/25 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
2019/10/23 Python
Python读取csv文件实例解析
2019/12/30 Python
Python爬虫之Selenium下拉框处理的实现
2020/12/04 Python
html5实现移动端适配完美写法
2017/11/16 HTML / CSS
设计师大码女装:11 Honoré
2020/05/03 全球购物
StringBuilder和String的区别
2015/05/18 面试题
小学生元旦广播稿
2014/02/21 职场文书
历史专业学生的自我评价
2014/02/28 职场文书
调查研究项目计划书
2014/04/29 职场文书
放飞梦想演讲稿800字
2014/08/26 职场文书
党员教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
丧事答谢词
2015/01/05 职场文书
运动会跳远广播稿
2015/08/19 职场文书
小组口号霸气押韵
2015/12/24 职场文书
2016暑期校本培训心得体会
2016/01/08 职场文书
2016教师学习教育法心得体会
2016/01/19 职场文书
导游词之黄果树瀑布
2019/09/20 职场文书