代码片段(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 | ?> |