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自定义函数返回多个值
Nov 26 PHP
中篇:安装及配置PHP
Dec 13 PHP
php对二维数组按指定键值key排序示例代码
Nov 26 PHP
php读取纯真ip数据库使用示例
Jan 26 PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
Jun 12 PHP
PHP会话控制:Session与Cookie详解
Sep 27 PHP
PHP获取Exif缩略图的方法
Jul 13 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
Dec 18 PHP
深入浅析PHP的session反序列化漏洞问题
Jun 15 PHP
PHP实现通过CURL上传文件功能示例
May 30 PHP
PHP+Ajax实现的检测用户名功能简单示例
Feb 12 PHP
PHP实现的AES 128位加密算法示例
Sep 16 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 会话(session 时间设定)使用入门代码
2008/06/05 PHP
php中出现空白页的原因及解决方法汇总
2014/07/08 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
2017/06/07 PHP
PHP完全二叉树定义与实现方法示例
2017/10/09 PHP
PHP异步进程助手async-helper
2018/02/05 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
2021/03/09 PHP
javascript jQuery $.post $.ajax用法
2008/07/09 Javascript
IE6/7/8/9不支持exec的简写方式
2011/05/25 Javascript
简单实用的反馈表单无刷新提交带验证
2013/11/15 Javascript
jquery attr方法获取input的checked属性问题
2014/05/26 Javascript
nodejs爬虫抓取数据之编码问题
2015/07/03 NodeJs
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
2015/08/21 Javascript
jQuery+ajax实现文章点赞功能的方法
2015/12/31 Javascript
一次$.getJSON不执行的简单记录
2016/07/19 Javascript
javascript基于原型链的继承及call和apply函数用法分析
2016/12/15 Javascript
巧用canvas
2017/01/21 Javascript
Vue实现web分页组件详解
2017/11/28 Javascript
vue中keep-alive,include的缓存问题
2019/11/26 Javascript
nodejs制作小爬虫功能示例
2020/02/24 NodeJs
结合axios对项目中的api请求进行封装操作
2020/09/21 Javascript
[03:00]DOTA2-DPC中国联赛1月18日Recap集锦
2021/03/11 DOTA
浅谈django model的get和filter方法的区别(必看篇)
2017/05/23 Python
python numpy 显示图像阵列的实例
2018/07/02 Python
使用Python进行目录的对比方法
2018/11/01 Python
解决Python下imread,imwrite不支持中文的问题
2018/12/05 Python
Windows平台Python编程必会模块之pywin32介绍
2019/10/01 Python
python批量将excel内容进行翻译写入功能
2019/10/10 Python
python初步实现word2vec操作
2020/06/09 Python
pytorch 移动端部署之helloworld的使用
2020/10/30 Python
CSS3教程(4):网页边框和网页文字阴影
2009/04/02 HTML / CSS
科技工作者先进事迹
2014/08/16 职场文书
社保转移委托书范本
2014/10/08 职场文书
幼儿园老师个人总结
2015/02/28 职场文书
中学推普周活动总结
2015/05/07 职场文书
毕业论文答辩开场白和结束语
2015/05/27 职场文书
nginx里的rewrite跳转的实现
2021/03/31 Servers