PHP与MongoDB简介|安全|M+PHP应用实例(转)
一、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 复制内容到剪贴板
<?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 Code 复制内容到剪贴板
<?php     
//选择数据库blog    
$db = $conn->blog;     
//制定结果集(表名:users)   
  
$collection = $db->users;     
?>    
<?php   
//选择数据库blog  
$db = $conn->blog;   
//制定结果集(表名:users)  
$collection = $db->users;   
?>  
3、CRUD
PHP Code 复制内容到剪贴板
<?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 Code 复制内容到剪贴板
<?php     
$conn->close();     
?> 
标签:	 <无>
代码片段(1) [全屏查看所有代码]
1. [代码][PHP]代码     
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
    ?>
 
                    
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号