第1篇 基础篇
第1章 MongoDB简介
1.1 关系型数据库简介
1.2 关系型数据库面临的问题
1.3 NoSQL的崛起
1.4 MongoDB是如何解决这些问题的
1.5 初识MongoDB
1.5.1 MongoDB的特点
1.5.2 数据模型
1.5.3 扩展性
1.5.4 功能性
1.5.5 速度快
1.5.6 简便的管理
1.5.7 使用场合
1.6 本章小结
第2章 MongoDB基本原理与安装
2.1 数据库结构
2.2 文档
2.3 集合
2.3.1 集合的无模式
2.3.2 集合的命名
2.4 MongoDB数据类型
2.4.1 基本数据类型
2.4.2 数字类型
2.4.3 日期类型
2.4.4 数组类型
2.4.5 内嵌文档类型
2.4.6 _id键和ObjectId对象
2.5 MongoDB的下载和安装
2.5.1 MongoDB的下载
2.5.2 在Windows平台下的下载与安装
2.5.3 在Linux平台下的下载与安装
2.6 MongoDB shell的使用
2.6.1 启动Shell
2.6.2 使用Shell对MongoDB的基本操作
2.6.3 使用Shell的诀窍
2.6.4 特殊的集合名
2.7 本章小结
第3章 文档的增加、修改及删除
3.1 插入并保存文档
3.1.1 插入的原理和作用
3.1.2 批量插入
3.2 删除文档
3.3 修改文档
3.3.1 整个文档的替换
3.3.2 使用修改器
3.3.3 upsert和save更新
3.3.4 修改多个文档
3.3.5 修改文档并返回修改后的文档
3.4 数据库响应
3.4.1 安全操作
3.4.2 捕获异常
3.5 客户端请求和MongoDB数据库连接
3.6 本章小结
第2篇 应用篇
第4章 查询
4.1 find简介
4.1.1 返回指定的键
4.1.2 find查询限制
4.2 条件操作符
4.2.1 $all匹配所有
4.2.2 $exists判断字段是否存在
4.2.3 null值处理
4.2.4 $mod取模运算
4.2.5 $ne不等于
4.2.6 $in包含
4.2.7 $nin不包含
4.2.8 $size数组元素个数
4.2.9 正则表达式匹配
4.2.10 Javascript 查询和$where 查询
4.2.11 count查询记录条数
4.2.12 limit限制返回记录数
4.2.13 skip 限制返回记录的起点
4.2.14 sort 排序
4.2.15 分页查询
4.2.16 随机抽取文档
4.3 distinct找出给定键所有不同的值
4.4 group分组
4.4.1 使用完成器
4.4.2 将函数作为键使用
4.5 游标
4.6 存储过程
4.7 本章小结
第5章 Capped集合
5.1 特性
5.2 使用和约束
5.3 应用
5.3.1 创建 capped collection
5.3.2 限制capped collection中对象个数
5.4 注意事项
5.5 本章小结
第6章 GridFS存储文件
6.1 为什么要用GridFS
6.2 如何实现海量存储
6.3 语言支持
6.4 简单介绍
6.5 命令行工具
6.6 内部原理
6.7 本章小结
第7章 MapReduce统计
7.1 Map函数
7.2 Reduce函数
7.3 结果存储
7.4 对Reduce函数结果进一步处理
7.5 其他控制细节
7.6 本章小结
第3篇 管理篇
第8章 管理
8.1 启动和停止MongoDB
8.1.1 使用命令行启动
8.1.2 配置文件
8.1.3 Daemon方式启动
8.1.4 mongod参数说明
8.1.5 停止数据库
8.2 访问控制
8.2.1 绑定IP内网地址访问MongoDB服务
8.2.2 设置监听端口
8.2.3 使用用户名和口令登录
8.3 命令行操作
8.3.1 通过eval参数执行指定语句
8.3.2 执行指定文件中的内容
8.4 进程控制
8.4.1 查看活动进程
8.4.2 结束进程
8.5 监控
8.5.1 使用管理接口
8.5.2 serverStatus
8.5.3 mongostat
8.5.4 第三方插件
8.6 数据导出mongoexport
8.6.1 常用导出方法
8.6.2 导出CSV格式的文件
8.7 数据导入mongoimport
8.7.1 导入JSON数据
8.7.2 导入CSV数据
8.8 数据备份和修复
8.8.1 数据文件备份
8.8.2 数据备份mongodump
8.8.3 数据恢复mongorestore
8.8.4 fsync和锁
8.8.5 从属备份
8.8.6 修复
8.9 本章小结
第4篇 性能篇
第9章 索引
9.1 索引简介
9.1.1 基础索引
9.1.2 文档索引
9.1.3 组合索引
9.1.4 唯一索引
9.1.5 强制使用索引
9.1.6 扩展索引
9.1.7 索引内嵌文档中的键
9.1.8 为排序创建索引
9.1.9 索引名称
9.1.10 删除索引
9.2 explain 执行计划
9.3 优化器profiler
9.3.1 开启profiler功能
9.3.2 查询profiler日志
9.4 索引管理
9.5 本章小结
第10章 性能优化
10.1 优化方案
10.1.1 优化方案1:创建索引
10.1.2 优化方案2:限定返回结果条数
10.1.3 优化方案3:只查询使用到的字段,而不查询所有字段
10.1.4 优化方案4:采用capped集合
10.1.5 优化方案5:采用Server Side Code Execution
10.1.6 优化方案6:hint 196
10.1.7 优化方案7:采用profiling
10.2 性能监控
10.2.1 mongosniff底层监控
10.2.2 mongostat查看运行中的实例统计信息
10.2.3 db.serverStatuss查看实例运行状态
10.2.4 db.stats查看数据库状态
10.2.5 第三方工具
10.3 本章小结
第5篇 架构篇
第11章 复制集
11.1 主从复制
11.1.1 选项
11.1.2 添加及删除源
11.2 复制集
11.2.1 部署复制集
11.2.2 初始化复制集
11.2.3 复制集中的节点
11.2.4 故障切换和活跃节点选举
11.3 主从配置信息
11.4 管理维护复制集
11.4.1 读写分离
11.4.2 故障转移
11.4.3 增减节点
11.5 工作原理
11.5.1 主从操作日志oplog
11.5.2 同步
11.5.3 复制状态和本地数据库
11.5.4 阻塞复制
11.6 管理
11.6.1 诊断
11.6.2 变更oplog的大小
11.6.3 复制的认证问题
11.7 本章小结
第12章 sharding 分片
12.1 分片简介
12.2 MongoDB中的自动分片
12.3 片键
12.3.1 将已有的集合分片
12.3.2 递增片键还是随机片键
12.3.3 片键对操作的影响
12.4 建立分片
12.4.1 启动Config Server配置服务器
12.4.2 启动mongos路由
12.4.3 启动Shard Server服务器
12.4.4 配置Sharding
12.4.5 验证Sharding正常工作
12.5 管理维护Sharding
12.5.1 列出所有的Shard Server
12.5.2 查看Sharding信息
12.5.3 判断是否是Sharding
12.5.4 对现有的集合进行Sharding
12.5.5 新增Shard Server
12.5.6 移除Shard Server
12.6 本章小结
第13章 复制集+shardin分片体
13.1 创建数据目录
13.2 配置复制集
13.2.1 配置shard1所用到的复制集
13.2.2 配置shard2所用到的复制集
13.3 配置多台Config Server
13.4 配置多台mongos
13.5 配置Shard Cluster
13.6 验证Sharding正常工作
13.7 管理分片
13.7.1 配置集合
13.7.2 分片命令
13.8 本章小结
第6篇 实例篇
第14章 实际项目搭建Mongo DB环境
14.1 环境搭建实例
14.1.1 服务器信息
14.1.2 分片结果表
14.1.3 复制集+sharding分片架构图
14.1.4 MongoDB环境搭建步骤
14.2 遇到的问题
14.3 本章小结
第15章 Java对MongoDB的基本操作实例
15.1 Java快速入门
15.1.1 安装Java驱动程序和开发环境
15.1.2 访问控制
15.1.3 Java对MongoDB数据库的基本操作
15.1.4 Java驱动的一致性
15.2 Java常用操作
15.2.1 Java对MongoDB的操作实例
15.2.2 对用户的操作
15.2.3 对集合的操作
15.2.4 对索引的操作
15.3 Java高级查询
15.3.1 通过游标获取所有的文档
15.3.2 比较运算符
15.3.3 逻辑运算符
15.3.4 正则表达式查询
15.3.5 skip跳过查询
15.4 Java操作GridFS
15.4.1 上传文件
15.4.2 查询数据
15.4.3 下载文件
15.4.4 删除数据
15.5 本章小结
第16章 C#对MongoDB的基本操作实例
16.1 C#快速入门
16.1.1 下载驱动和配置开发环境
16.1.2 访问控制
16.1.3 C#对数据库的基础操作
16.2 C#驱动一致性
16.3 C#常用操作
16.3.1 对MongoDB的操作实例
16.3.2 对用户的操作
16.3.3 对集合的操作
16.3.4 对索引的操作
16.4 C#高级查询
16.4.1 判断列名是否存在
16.4.2 比较运算符
16.4.3 逻辑运算符
16.4.4 正则表达式查询
16.4.5 跳过查询
16.5 C#操作GridFS
16.5.1 上传文件
16.5.2 查询数据
16.5.3 下载文件
16.5.4 删除数据
16.6 本章小结
展开