PHP与MongoDB简介|安全|M+PHP应用实例详解


Posted in PHP onJune 17, 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://github.com/mongodb/mongo-php-driver/downloads,提示:
1、VC6适合Apache、VC9适合IIS;
2、Thread safe适合PHP以模块运行方式、Non-thread safe适合CGI运行方式。
修改php.ini,加入:extension=php_mongo.dll,重启Web服务器。

四、PHP测试与MongoDB的相关示例
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"); 
?>

<?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; 
?>

<?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); 
?>

<?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 相关文章推荐
fleaphp crud操作之find函数的使用方法
Apr 23 PHP
php学习之变量的使用
May 29 PHP
探讨PHP JSON中文乱码的解决方法详解
Jun 06 PHP
php下pdo的mysql事务处理用法实例
Dec 27 PHP
php查询mysql大量数据造成内存不足的解决方法
Mar 04 PHP
PHP加密解密实例分析
Dec 25 PHP
PHP编写登录验证码功能 附调用方法
May 19 PHP
php版微信开发之接收消息,自动判断及回复相应消息的方法
Sep 23 PHP
关于PHP转换超过2038年日期出错的问题解决
Jun 28 PHP
php实现图片压缩处理
Sep 09 PHP
PHP编程一定要改掉的5个不良习惯
Sep 18 PHP
PHP7 标准库修改
Mar 09 PHP
php.ini修改php上传文件大小限制的方法详解
Jun 17 #PHP
php 模拟POST提交的2种方法详解
Jun 17 #PHP
PHP的curl实现get,post和cookie(实例介绍)
Jun 17 #PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
Jun 17 #PHP
深入PHP curl参数的详解
Jun 17 #PHP
解析php curl_setopt 函数的相关应用及介绍
Jun 17 #PHP
PHP中array_merge和array相加的区别分析
Jun 17 #PHP
You might like
Ajax PHP简单入门教程代码
2008/04/25 PHP
PHP初学者最感迷茫的问题小结
2010/03/27 PHP
php生成随机密码自定义函数代码(简单快速)
2014/05/10 PHP
php使用pack处理二进制文件的方法
2014/07/03 PHP
mac环境中使用brew安装php5.5.15
2014/08/18 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
用jquery实现输入框获取焦点消失文字
2013/04/27 Javascript
JS中的log对象获取以及debug的写法介绍
2014/03/03 Javascript
JavaScript获取元素尺寸和大小操作总结
2015/02/27 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
2015/09/01 Javascript
纯js实现手风琴效果代码
2020/04/17 Javascript
Angularjs的Controller间通信机制实例分析
2016/11/07 Javascript
BootStrap Fileinput的使用教程
2016/12/30 Javascript
Angularjs 与 bower安装和使用详解
2017/05/11 Javascript
基于JavaScript实现微信抢红包功能
2017/07/20 Javascript
jQuery读取本地的json文件(实例讲解)
2017/10/31 jQuery
在vue中created、mounted等方法使用小结
2020/07/21 Javascript
js实现车辆管理系统
2020/08/26 Javascript
Python备份目录及目录下的全部内容的实现方法
2016/06/12 Python
Python基于identicon库创建类似Github上用的头像功能
2017/09/25 Python
python async with和async for的使用
2019/06/20 Python
python读取hdfs上的parquet文件方式
2020/06/06 Python
python selenium xpath定位操作
2020/09/01 Python
Python实现迪杰斯特拉算法并生成最短路径的示例代码
2020/12/01 Python
纯css3实现的动画按钮的实例教程
2014/11/17 HTML / CSS
挪威户外活动服装和装备购物网站:Bergfreunde挪威
2016/10/20 全球购物
英国文胸专家:AmpleBosom.com
2018/02/06 全球购物
介绍一下write命令
2014/08/10 面试题
财务人员个人自荐信范文
2013/09/26 职场文书
幼儿园见习报告
2014/10/30 职场文书
2014年终工作总结范本
2014/12/15 职场文书
2015年七一建党节慰问信
2015/03/23 职场文书
圆明园纪录片观后感
2015/06/03 职场文书
SQLServer常见数学函数梳理总结
2022/08/05 MySQL