一、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' => '[email protected]');
$collection->insert($user);
//修改
$newdata = array('$set' => array("email" => "[email protected]"));
$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' => '[email protected]');
$collection->insert($user);
//修改
$newdata = array('$set' => array("email" => "[email protected]"));
$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' => '[email protected]');
087
$collection->insert($user);
088
//修改
089
$newdata = array('$set' => array("email" => "[email protected]"));
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' => '[email protected]');
103
$collection->insert($user);
104
//修改
105
$newdata = array('$set' => array("email" => "[email protected]"));
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
?>