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 相关文章推荐
消息持续发送的完整例子
Oct 09 PHP
php遍历目录viewDir函数
Dec 15 PHP
php 多线程上下文中安全写文件实现代码
Dec 28 PHP
php中如何使对象可以像数组一样进行foreach循环
Aug 09 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
Jun 12 PHP
PHP获取mysql数据表的字段名称和详细信息的方法
Sep 27 PHP
php解析xml方法实例详解
May 12 PHP
PHP实现抓取迅雷VIP账号的方法
Jul 30 PHP
万能的php分页类
Jul 06 PHP
php readfile()修改文件上传大小设置
Aug 11 PHP
Laravel学习教程之request validation的编写
Oct 25 PHP
php+js实现裁剪任意形状图片
Oct 31 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下操作Linux消息队列完成进程间通信的方法
2010/07/24 PHP
php下关于Cannot use a scalar value as an array的解决办法
2010/08/08 PHP
php中日期加减法运算实现代码
2011/12/08 PHP
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
PHP实现的随机IP函数【国内IP段】
2016/07/20 PHP
来自chinaz的ajax获取评论代码
2008/05/03 Javascript
单独使用CKFinder选择图片的方法
2010/08/21 Javascript
jQuery + Flex 通过拖拽方式动态改变图片的代码
2011/08/03 Javascript
JS实现鼠标滑过链接改变网页背景颜色的方法
2015/10/20 Javascript
深入对Vue.js $watch方法的理解
2017/03/20 Javascript
React 子组件向父组件传值的方法
2017/07/24 Javascript
基于node.js之调试器详解
2017/08/22 Javascript
vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法
2018/07/12 Javascript
vue-router 实现导航守卫(路由卫士)的实例代码
2018/09/02 Javascript
js限制input只能输入有效的数字(第一个不能是小数点)
2018/09/28 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
2019/09/21 Javascript
mpvue微信小程序的接口请求fly全局拦截代码实例
2019/11/13 Javascript
JavaScript 替换所有匹配内容及正则替换方法
2020/02/12 Javascript
[01:19:35]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第二局
2016/03/05 DOTA
Python的Django框架中的数据过滤功能
2015/07/17 Python
python爬虫_自动获取seebug的poc实例
2017/08/05 Python
python3设计模式之简单工厂模式
2017/10/17 Python
python接口自动化之ConfigParser配置文件的使用详解
2020/08/03 Python
超酷炫 CSS3垂直手风琴菜单
2016/06/28 HTML / CSS
美国CVS药店官网:CVS Pharmacy
2018/07/26 全球购物
千禧酒店及度假村官方网站:Millennium Hotels and Resorts
2019/05/10 全球购物
Kusmi茶美国官网:优质散叶茶和茶包
2019/10/13 全球购物
HomeAway英国:全球领先的度假租赁在线市场
2020/02/03 全球购物
新闻学毕业生自荐信
2013/11/15 职场文书
党支部四风整改方案
2014/10/25 职场文书
销售督导岗位职责
2015/04/10 职场文书
办公室禁烟通知
2015/04/23 职场文书
黄埔军校观后感
2015/06/10 职场文书
无违反计划生育证明格式
2015/06/24 职场文书
升学宴家长致辞
2015/07/27 职场文书
Vue3实现简易音乐播放器组件
2022/08/14 Vue.js