第一部分 基 础篇 2
第1章认识MongoDB 2
1.1 NoSQL简介 2
1.1.1产生背景 2
1.1.2 NoSQL的种类及其特性 4
1.1.3 NoSQL特点 8
1.1.4发展现状 8
1.2初识MongoDB 9
1.2.1特点及功能 10
1.2.2适用场合 11
1.3 MongoDB实际应用案例 12
1.3.1国内案例 12
1.3.2国外案例 12
1.4本章小结 13
第2章快速入门 14
2.1体系结构 14
2.1.1数据逻辑结构 14
2.1.2数据存储结构 15
2.1.3日志系统 17
2.1.4元数据的存储 18
2.1.5数据类型 19
2.2 MongoDB的安装和配置 22
2.2.1在Windows平台下的安装和配置 22
2.2.2在Linux平台下的安装和配置 23
2.3启动数据库 25
2.3.1命令行方式 25
2.3.2配置文件方式 25
2.3.3 Daemon方式 26
2.3.4 mongod参数方式 26
2.4停止数据库 27
2.4.1 Ctrl+C组合键 27
2.4.2 shutdownServer()指令 28
2.4.3 UNIX系统指令 28
2.5操作数据库 29
2.5.1连接数据库 29
2.5.2插入记录 29
2.5.3查询记录 31
2.5.4修改记录 34
2.5.5删除记录 34
2.6常用GUI管理工具 34
2.6.1 MongoVUE 34
2.6.2 RockMongo 35
2.6.3 MongoHub 36
2.7本章小结 37
第二部分 高 级篇 40
第3章 高级查询 40
3.1查询操作符 40
3.2查询语法 46
3.2.1数组内容的查询 47
3.2.2内嵌文档的查询 47
3.2.3正则表达式匹配 48
3.2.4 $where查询 48
3.3联合查询 49
3.3.1简单手工关联 49
3.3.2 DBRef方式关联 50
3.4游标和存储过程 51
3.4.1游标 51
3.4.2存储过程 52
3.5本章小结 53
第4章 高级更新 55
4.1数据更新命令详解 55
4.1.1 update命令 55
4.1.2 save命令 56
4.2数据更新操作符 57
4.3本章小结 62
第5章 高级特性 63
5.1 Capped Collection集合 63
5.1.1创建Capped Collection 63
5.1.2 Capped Collection的用途 64
5.1.3注意事项 64
5.2 GridFS规范 65
5.2.1如何实现海量存储 65
5.2.2命令行工具 66
5.3 MapReduce编程模型 68
5.3.1 Map进行分组 69
5.3.2 Reduce聚合计算 69
5.3.3 Result获取结果 70
5.3.4 Finalize格式化输出 70
5.3.5 Options定制输出 71
5.4本章小结 72
第三部分 管 理篇 74
第6章 管理工具集 74
6.1.数据迁移 74
6.1.1导出工具mongoexport 75
6.1.2导出工具mongodump 78
6.1.3导入工具mongoimport 79
6.2数据的备份和恢复 81
6.2.1备份工具mongodump 81
6.2.2恢复工具mongorestore 84
6.3命令行操作 86
6.3.1通过eval参数执行指定语句 86
6.3.2执行指定文件中的内容 87
6.4本章小结 88
第7章 管理命令 89
7.1克隆collection 90
7.1.1远程克隆collection 90
7.1.2本地克隆collection 94
7.2复制数据库 94
7.2.1远程复制数据库 94
7.2.2本地复制数据库 96
7.3刷新磁盘 97
7.4捕获异常 98
7.4.1返回异常信息 98
7.4.2阻塞客户端 99
7.5进程控制 99
7.5.1查看活动进程 99
7.5.2结束进程 100
7.6验证collection的有效性 100
7.7数据压缩 101
7.8本章小结 102
第8章 访问控制 103
8.1限制特定IP地址访问 104
8.2设置监听端口 104
8.3使用用户名和口令登录 105
8.3.1建立系统root用户 107
8.3.2建立指定权限用户 108
8.3.3删除指定用户 109
8.4本章小结 110
第四部分 性 能篇 112
第9章 索引及优化 112
9.1 MongoDB索引概述 112
9.2索引操作 113
9.2.1基础索引 113
9.2.2静默方式创建索引 115
9.2.3文档索引 115
9.2.4组合索引 116
9.2.5唯一索引 116
9.2.6强制使用索引 117
9.2.7删除索引 119
9.2.8重建索引 119
9.2.9 explain查看执行计划 119
9.3优化器Profiler 121
9.3.1开启Profiler功能 121
9.3.2查询Profiler记录 122
9.4性能优化概述 123
9.4.1性能优化的原则 123
9.4.2影响性能的因素 124
9.5常用的优化方案 124
9.5.1创建索引 124
9.5.2限定返回结果条数 125
9.5.3只查询用到的字段 125
9.5.4采用Capped Collection 126
9.5.5采用Server Side Code Execution命令集 126
9.5.6使用hint 127
9.5.7采用Profiler 127
9.6本章小结 128
第10章 性能监控 129
10.1 mongosniff工具 129
10.2 mongostat工具 131
10.3 db.serverStatus命令 132
10.4 db.stats命令 134
10.5 HTTP监控接口 135
10.6本章小结 136
第五部分 架 构篇 138
第11章复制集 138
11.1 Replica Sets架构 138
11.2部署Replica Sets 139
11.3主从操作日志 144
11.4主从配置信息 146
11.5管理Replica Sets 147
11.5.1主从切换 147
11.5.2读写分离 149
11.5.3故障转移 151
11.5.4增减节点 153
11.6本章小结 160
第12章 分片 161
12.1 Sharding简介 161
12.1.1 Sharding的特点 161
12.1.2 Sharding架构 162
12.2构建一个简单的Sharding Cluster 163
12.2.1启动Shard Server 163
12.2.2启动Config Server 164
12.2.3启动Route Process 164
12.2.4配置Sharding 164
12.2.5验证Sharding 165
12.3维护Sharding 167
12.3.1列出所有的Shard Server 168
12.3.2查看Sharding信息 168
12.3.3判断是否是Sharding 169
12.3.4对现有的表执行Sharding 169
12.3.5新增Shard Server 171
12.3.6移除Shard Server 172
12.4本章小结 175
第13章Replica Sets+Sharding方案 176
13.1 Replica Sets+Sharding架构 176
13.2搭建一个高可用架构 177
13.2.1创建数据目录 177
13.2.2配置Replica Sets 178
13.2.3配置3台Config Server 181
13.2.4配置3台Route Process 181
13.2.5配置Shard Cluster 181
13.2.6验证Sharding 182
13.3本章小结 183
第六部分 开 发篇 186
第14章C#开发接口 186
14.1 C#快速入门 186
14.1.1下载驱动和开发环境 186
14.1.2访问控制 188
14.1.3 C#对数据库的基础操作 189
14.2 C#驱动一致性 194
14.3 C#常用操作 195
14.3.1对MongoDB实例的操作 195
14.3.2对用户的操作 198
14.3.3对collection的操作 202
14.3.4对索引的操作 208
14.4 C#高级查询 211
14.4.1判断列名是否存在 211
14.4.2比较运算符 213
14.4.3逻辑运算符 221
14.4.4正则表达式查询 223
14.4.5跳过查询 224
14.5用C#操作GridFS 225
14.5.1插入数据 225
14.5.2查询数据 226
14.5.3读取并保存数据 227
14.5.4删除数据 228
14.6本章小结 229
第15章Java开发接口 230
15.1 Java快速入门 230
15.1.1下载驱动和开发环境 230
15.1.2访问控制 232
15.1.3 Java对数据库的基础操作 233
15.2 Java驱动一致性 237
15.3 Java常用操作 238
15.3.1对MongoDB实例的操作 238
15.3.2对用户的操作 241
15.3.3对collection的操作 243
15.3.4对索引的操作 250
15.4 Java高级查询 253
15.4.1通过游标获取所有document 253
15.4.2比较运算符 254
15.4.3逻辑运算符 263
15.4.4正则表达式查询 264
15.4.5跳过查询 265
15.5用Java操作GridFS 266
15.5.1插入数据 266
15.5.2查询数据 267
15.5.3读取并保存数据 268
15.5.4删除数据 269
15.6本章小结 270