001
一、MongoDB简介
002
003
MongoDB (名称来自
"humongous"
) 是一个可扩展的、高性能、开源、模式自由、面向文档的数据库,集文档数据库、键值对存储和关系型数据库的优点于一身。官方站点:http:
004
005
•面向文档存储(类JSON数据模式简单而强大)
006
•动态查询
007
•全索引支持,扩展到内部对象和内嵌数组
008
•查询记录分析
009
•快速,就地更新
010
•高效存储二进制大对象 (比如照片和视频)
011
•复制和故障切换支持
012
•Auto-Sharding自动分片支持云级扩展性
013
•MapReduce 支持复杂聚合
014
•商业支持,培训和咨询
015
016
二、安装MongoDB
017
018
安装MongoDB非常的简单,仅需下载压缩包解压运行命令即可,下载地址:http:
019
>bin/mongod --dbpath=d:\mgdata\db
020
021
三、安装MongoDB PHP扩展
022
023
根据自己的PHP版本下载PHP扩展:http:
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
035
$conn
=
new
Mongo();
036
037
$conn
=
new
Mongo(
'test.com'
);
038
039
$conn
=
new
Mongo(
'test.com:22011'
);
040
041
$conn
=
new
Mongo(
"mongodb://${username}:${password}@localhost"
)
042
043
$conn
=
new
Mongo(
"mongodb://${username}:${password}@localhost/blog"
);
044
045
$conn
=
new
Mongo(
"mongodb://localhost:27017,localhost:27018"
);
046
?>
047
<?php
048
049
$conn
=
new
Mongo();
050
051
$conn
=
new
Mongo(
'test.com'
);
052
053
$conn
=
new
Mongo(
'test.com:22011'
);
054
055
$conn
=
new
Mongo(
"mongodb://${username}:${password}@localhost"
)
056
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
068
$db
=
$conn
->blog;
069
070
071
$collection
=
$db
->users;
072
?>
073
<?php
074
075
$db
=
$conn
->blog;
076
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
?>