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

转载 2013年12月02日 06:07:08

一、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 Code 复制内容到剪贴板
  1. <?php     
  2. //连接localhost:27017    
  3. $conn = new Mongo();     
  4. //连接远程主机默认端口    
  5. $conn = new Mongo('test.com');     
  6. //连接远程主机22011端口    
  7. $conn = new Mongo('test.com:22011');     
  8. //MongoDB有用户名密码    
  9. $conn = new Mongo("mongodb://${username}:${password}@localhost")     
  10. //MongoDB有用户名密码并指定数据库blog    
  11. $conn = new Mongo("mongodb://${username}:${password}@localhost/blog");     
  12. //多个服务器    
  13. $conn = new Mongo("mongodb://localhost:27017,localhost:27018");     
  14. ?>    
  15. <?php   
  16. //连接localhost:27017  
  17. $conn = new Mongo();   
  18. //连接远程主机默认端口  
  19. $conn = new Mongo('test.com');   
  20. //连接远程主机22011端口  
  21. $conn = new Mongo('test.com:22011');   
  22. //MongoDB有用户名密码  
  23. $conn = new Mongo("mongodb://${username}:${password}@localhost")   
  24. //MongoDB有用户名密码并指定数据库blog  
  25. $conn = new Mongo("mongodb://${username}:${password}@localhost/blog");   
  26. //多个服务器  
  27. $conn = new Mongo("mongodb://localhost:27017,localhost:27018");   
  28. ?>  


2、指定数据库和数据集名(表名)

PHP Code 复制内容到剪贴板
  1. <?php     
  2. //选择数据库blog    
  3. $db = $conn->blog;     
  4. //制定结果集(表名:users)   
  5.   
  6. $collection = $db->users;     
  7. ?>    
  8. <?php   
  9. //选择数据库blog  
  10. $db = $conn->blog;   
  11. //制定结果集(表名:users)  
  12. $collection = $db->users;   
  13. ?>  


3、CRUD

PHP Code 复制内容到剪贴板
  1. <?php     
  2. //新增    
  3. $user = array('name' => 'caleng''email' => 'admin@admin.com');     
  4. $collection->insert($user);     
  5. //修改    
  6. $newdata = array('$set' => array("email" => "test@test.com"));     
  7. $collection->update(array("name" => "caleng"), $newdata);     
  8. //删除    
  9. $collection->remove(array('name'=>'caleng'), array("justOne" => true));     
  10. //查找    
  11. $cursor = $collection->find();     
  12. var_dump($cursor);     
  13. //查找一条    
  14. $user = $collection->findOne(array('name' => 'caleng'), array('email'));     
  15. var_dump($user);     
  16. ?>    
  17. <?php   
  18. //新增  
  19. $user = array('name' => 'caleng''email' => 'admin@admin.com');   
  20. $collection->insert($user);   
  21. //修改  
  22. $newdata = array('$set' => array("email" => "test@test.com"));   
  23. $collection->update(array("name" => "caleng"), $newdata);   
  24. //删除  
  25. $collection->remove(array('name'=>'caleng'), array("justOne" => true));   
  26. //查找  
  27. $cursor = $collection->find();   
  28. var_dump($cursor);   
  29. //查找一条  
  30. $user = $collection->findOne(array('name' => 'caleng'), array('email'));   
  31. var_dump($user);   
  32. ?>  



4、关闭连接

PHP Code 复制内容到剪贴板
  1. <?php     
  2. $conn->close();     
  3. ?> 
标签: <无>

代码片段(1)[全屏查看所有代码]

1. [代码][PHP]代码     跳至 [1] [全屏预览]

001 一、MongoDB简介
002  
003 MongoDB (名称来自"humongous") 是一个可扩展的、高性能、开源、模式自由、面向文档的数据库,集文档数据库、键值对存储和关系型数据库的优点于一身。官方站点:http://www.mongodb.org/,MongoDB特点:
004  
005 •面向文档存储(类JSON数据模式简单而强大)
006 •动态查询
007 •全索引支持,扩展到内部对象和内嵌数组
008 •查询记录分析
009 •快速,就地更新
010 •高效存储二进制大对象 (比如照片和视频)
011 •复制和故障切换支持
012 •Auto-Sharding自动分片支持云级扩展性
013 •MapReduce 支持复杂聚合
014 •商业支持,培训和咨询
015  
016 二、安装MongoDB
017  
018 安装MongoDB非常的简单,仅需下载压缩包解压运行命令即可,下载地址:http://www.mongodb.org/downloads,本文为windows平台,MongoDB运行命令:>bin/mongod。提示:首先要创建存储数据的文件夹,MongoDB 默认存储数据目录为 /data/db/ (或者 c:\data\db),当然你也可以修改成不同目录,只需要指定 --dbpath 参数,eg:
019 >bin/mongod --dbpath=d:\mgdata\db
020  
021 三、安装MongoDB PHP扩展
022  
023 根据自己的PHP版本下载PHP扩展:http://github.com/mongodb/mongo-php-driver/downloads,提示:
024 1、VC6适合Apache、VC9适合IIS;
025 2、Thread safe适合PHP以模块运行方式、Non-thread safe适合CGI运行方式。
026 修改php.ini,加入:extension=php_mongo.dll,重启Web服务器。
027  
028 四、PHP测试与MongoDB的相关示例
029  
030 1、连接Mongo服务器
031 PHP Code复制内容到剪贴板
032  
033     <?php    
034     //连接localhost:27017   
035     $conn new Mongo();    
036     //连接远程主机默认端口   
037     $conn new Mongo('test.com');    
038     //连接远程主机22011端口   
039     $conn new Mongo('test.com:22011');    
040     //MongoDB有用户名密码   
041     $conn new Mongo("mongodb://${username}:${password}@localhost")    
042     //MongoDB有用户名密码并指定数据库blog   
043     $conn new Mongo("mongodb://${username}:${password}@localhost/blog");    
044     //多个服务器   
045     $conn new Mongo("mongodb://localhost:27017,localhost:27018");    
046     ?>   
047     <?php  
048     //连接localhost:27017 
049     $conn new Mongo();  
050     //连接远程主机默认端口 
051     $conn new Mongo('test.com');  
052     //连接远程主机22011端口 
053     $conn new Mongo('test.com:22011');  
054     //MongoDB有用户名密码 
055     $conn new Mongo("mongodb://${username}:${password}@localhost")  
056     //MongoDB有用户名密码并指定数据库blog 
057     $conn new Mongo("mongodb://${username}:${password}@localhost/blog");  
058     //多个服务器 
059     $conn new Mongo("mongodb://localhost:27017,localhost:27018");  
060     ?> 
061  
062  
063 2、指定数据库和数据集名(表名)
064 PHP Code复制内容到剪贴板
065  
066     <?php    
067     //选择数据库blog   
068     $db $conn->blog;    
069     //制定结果集(表名:users)  
070        
071     $collection $db->users;    
072     ?>   
073     <?php  
074     //选择数据库blog 
075     $db $conn->blog;  
076     //制定结果集(表名:users) 
077     $collection $db->users;  
078     ?> 
079  
080  
081 3、CRUD
082 PHP Code复制内容到剪贴板
083  
084     <?php    
085     //新增   
086     $user array('name' => 'caleng''email' => 'admin@admin.com');    
087     $collection->insert($user);    
088     //修改   
089     $newdata array('$set' => array("email" => "test@test.com"));    
090     $collection->update(array("name" => "caleng"), $newdata);    
091     //删除   
092     $collection->remove(array('name'=>'caleng'), array("justOne" => true));    
093     //查找   
094     $cursor $collection->find();    
095     var_dump($cursor);    
096     //查找一条   
097     $user $collection->findOne(array('name' => 'caleng'), array('email'));    
098     var_dump($user);    
099     ?>   
100     <?php  
101     //新增 
102     $user array('name' => 'caleng''email' => 'admin@admin.com');  
103     $collection->insert($user);  
104     //修改 
105     $newdata array('$set' => array("email" => "test@test.com"));  
106     $collection->update(array("name" => "caleng"), $newdata);  
107     //删除 
108     $collection->remove(array('name'=>'caleng'), array("justOne" => true));  
109     //查找 
110     $cursor $collection->find();  
111     var_dump($cursor);  
112     //查找一条 
113     $user $collection->findOne(array('name' => 'caleng'), array('email'));  
114     var_dump($user);  
115     ?> 
116  
117  
118  
119 4、关闭连接
120 PHP Code复制内容到剪贴板
121  
122     <?php    
123     $conn->close();    
124     ?>

php MySQL与MongoDB的对比

MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库。它们各有各的优点,关键是看用在什么地方...
  • pengone
  • pengone
  • 2015年11月27日 14:00
  • 961

Redis、Memcache和MongoDB的区别

MemcachedMemcached的优点: Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key、value的字节大小以及服务器硬件性能,日常环境中QPS高峰大约...
  • qq_28602957
  • qq_28602957
  • 2017年02月15日 13:51
  • 1642

php连接MongoDB数据库及CRUD操作详解

在php中配置MonogoDB数据库;php连接mongoDB数据库;php对MongoDB数据的增删改查操作等...
  • hsd2012
  • hsd2012
  • 2016年04月30日 21:13
  • 6072

php mongodb操作类,适合mongodb2.x和mongodb3.x

在别人基础上修改的mongodb操作类,适合mongodb2.x和mongodb3.x
  • nuli888
  • nuli888
  • 2016年07月06日 13:57
  • 8633

mongoDB——简介

通过上篇博客应该对NoSQL有了一定的理解,NoSQL数据库也是有很多种的,接下来主要学习其中的mongoDB数据库。       mongoDB是一个开源的,面向文档存储的非关系型数据库。是非关...
  • liusong0605
  • liusong0605
  • 2013年08月30日 09:03
  • 7148

MongoDB简介和基本概念(一)

NoSQL简介  NoSQL(Not Only SQL ),意即“不仅仅是SQL” ,指的是非关系型的数据库 。是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的...
  • zh_ang_lei
  • zh_ang_lei
  • 2017年06月16日 11:56
  • 678

PHP的mongo 和mongodb扩展到底啥区别?

两个扩展提供的类和接口完全不一样,哈哈。例如:原本用 mongo 一些查询操作返回一个数组的,在 mongodb 中变成游标读取的形式。 mongo 这个扩展已经废弃了,不过 bug 和 s...
  • sanbingyutuoniao123
  • sanbingyutuoniao123
  • 2017年02月24日 15:10
  • 1358

MongoDB(一)——简单介绍

这两天简单学习了一下MongoDB数据库,属于NoSQL类型数据库的一种,先简单宏观的看一下NoSQL的相关知识和MongoDB的基础知识。          NoSQL是Not Only SQL的缩...
  • liujiahan629629
  • liujiahan629629
  • 2014年11月16日 02:56
  • 4576

MongoDB 3.0+ 安全权限访问控制

MongoDB3.0+的权限,网上搜出来的解决方法都是3.0以下的版本的,所以不适合3.0+以上的版本,由于这版本改变的有些大,解决了很久,终于解决,下面把解决的步骤以及思路分享给大家。...
  • LK10207160511
  • LK10207160511
  • 2015年12月13日 11:45
  • 13465

PHP操作MongoDB数据库

一、MongoDB简介MongoDB (名称来自”humongous”) 是一个可扩展的、高性能、开源、模式自由、面向文档的数据库,集文档数据库、键值对存储和关系型数据库的优点于一身。官方站点: ht...
  • sunboy_2050
  • sunboy_2050
  • 2015年10月27日 15:51
  • 14142
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP与MongoDB简介|安全|M+PHP应用实例
举报原因:
原因补充:

(最多只允许输入30个字)