内容简介
第一部分 基础与架构理论篇
第1章 初识MongoDB
1.1 MongoDB简介
1.1.1 MongoDB是什么
1.1.2 MongoDB的历史
1.1.3 MongoDB的发展情况
1.1.4 哪些公司在用MongoDB
1.2 MongoDB的特点
1.3 MongoDB应用场景
1.3.1 MongoDB适用于以下场景
1.3.2 MongoDB不适合的场景
第2章 MongoDB的结构
2.1 数据库
2.1.1 数据库的层次
2.1.2 数据的命名
2.1.3 自带数据库
2.2 普通集合
2.2.1 集合是什么
2.2.2 集合的特点——无模式
2.2.3 集合命名
2.2.4 子集合
2.3 固定集合(Capped)
2.3.1 Capped简介
2.3.2 Capped属性特点
2.3.3 Capped应用场景
2.4 文档
2.4.1 文档简介
2.4.2 文档的特点
2.4.3 文档的键名命名规则
2.5 数据类型
2.5.1 基本数据类型
2.5.2 数字类型说明
2.5.3 日期类型说明
2.5.4 数组类型说明
2.5.5 内嵌文档类型说明
2.5.6 _id键和ObjectId对象说明
2.5.7 二进制类型说明——小文件存储
2.6 索引简介
2.6.1 什么是索引
2.6.2 索引的作用
2.6.3 普通索引
2.6.4 唯一索引
2.6.5 地理空间索引
第3章 MongoDB的大文件存储规范GridFs
3.1 GridFS简介
3.2 GridFS原理
3.3 GridFS应用场景
3.4 GridFS的局限性
第4章 MongoDB的分布式运算模型MapReduce
4.1 MapReduce简介
4.2 MapReduce原理
4.3 MapReduce应用场景
第5章 MongoDB存储原理
5.1 存取工作流程
5.2 存储引擎
5.2.1 MMAP引擎
5.2.2 MMAPv1引擎
5.2.3 WiredTiger引擎
5.2.4 In-Memory
5.2.5 引擎的选择
5.2.6 未来的引擎
第6章 了解MongoDB复制集
6.1 复制集简介
6.1.1 主从复制和副本集
6.1.2 副本集的特点
6.2 副本集工作原理
6.2.1 oplog(操作日志)
6.2.2 数据同步
6.2.3 复制状态和本地数据库
6.2.4 阻塞复制
6.2.5 心跳机制
6.2.6 选举机制
6.2.7 数据回滚
第7章 了解MongoDB分片
7.1 分片的简介
7.2 分片的工作原理
7.2.1 数据分流
7.2.2 chunkSize和块的拆分
7.2.3 平衡器和块的迁移
7.3 分片的应用场景
第二部分 管理与开发入门篇
第8章 安装MongoDB
8.1 版本和平台的选择
8.1.1 版本的选择
8.1.2 平台的选择
8.1.3 32位和64位
8.2 Windows系统安装MongoDB
8.2.1 查看安装环境
8.2.2 安装步骤
8.2.3 目录文件了解
8.3 Linux系统安装MongoDB
8.3.1 虚拟机简介
8.3.2 虚拟机安装以及安装Linux系统
8.3.3 安装MongoDB
8.4 Mac OSX系统安装MongoDB
8.4.1 查看安装环境
8.4.2 官网安装包安装
8.4.3 Mac软件仓库安装
第9章 启动和停止MongoDB
9.1 命令行方式启动和参数
9.1.1 Windows系统命令行启动MongoDB
9.1.2 Linux系统命令行启动MongoDB
9.1.3 Mac OS系统命令行启动MongoDB
9.2 启动参数
9.3 配置文件方式启动
9.4 启动MongoDB客户端
9.5 关闭MongoDB
9.5.1 Windows系统设置MongoDB关闭
9.5.2 Linux系统设置MongoDB关闭
9.5.3 Mac OS系统设置MongoDB关闭
9.6 设置MongoDB开机启动
9.6.1 Windows系统设置MongoDB开机启动
9.6.2 Linux系统设置MongoDB开机启动
9.6.3 Mac OS系统设置MongoDB开机启动
9.7 修复未正常关闭的MongoDB
第10章 基本命令
10.1 数据库常用命令
10.2 集合
10.3 文档
10.4 索引
10.5 基本查询
10.5.1 find简介
10.5.2 游标
10.6 条件查询
10.6.1 与操作
10.6.2 或操作$or
10.6.3 大于$gt
10.6.4 小于$lt
10.6.5 大于等于$gte
10.6.6 小于等于$lte
10.6.7 类型查询$type
10.6.8 是否存在$exists
10.6.9 取模$mod
10.6.10 不等于$ne
10.6.11 包含$in
10.6.12 不包含$nin
10.6.13 $not:反匹配
10.7 特定类型查询
10.7.1 null
10.7.2 正则查询(模糊查询)
10.7.3 嵌套文档
10.7.4 数组
10.8 高级查询$where
10.8.1 JavaScript语言简介
10.8.2 JavaScript编程简单例子
10.8.3 JavaScript与$where结合使用
10.9 查询辅助
10.9.1 条数限制limit
10.9.2 起始位置skip
10.9.3 排序sort
10.10 修改器
10.10.1 $set
10.10.2 $unset
10.10.3 $inc
10.10.4 $push
10.10.5 $pushAll
10.10.6 $pull
10.10.7 $addToSet
10.10.8 $pop
10.10.9 $rename
10.10.10$bit
10.11 原生聚合运算
10.11.1 数量查询count
10.11.2 不同值distinct
10.11.3 分组group
10.11.4 灵活统计MapReduce
10.12 聚合管道
10.12.1 aggregate用法
10.12.2 管道操作器
10.12.3 管道表达式
10.12.4 复合使用示例
第11章 GUI工具:数据库外部管理工具
11.1 MongoDB的GUI工具简介
11.2 Robomongo基本操作
11.2.1 连接MongoDB
11.2.2 创建删除数据库
11.2.3 插入文档
11.2.4 查询文档
11.2.5 更新文档
11.2.6 创建索引
11.2.7 执行JavaScript
第12章 监控
12.1 原生管理接口监控
12.2 使用serverStatus在Shell监控
12.3 使用mongostat在Shell监控
12.4 使用第三方插件监控
第13章 安全和访问控制
13.1 绑定监听ip
13.2 设置监听端口
13.3 用户认证
13.3.1 启用认证
13.3.2 添加用户
13.3.3 用户权限控制
13.3.4 用户登录
13.3.5 修改密码
13.3.6 删除用户
第14章 数据管理
14.1 数据备份mongodump
14.2 数据恢复mongorestore
14.3 数据导出mongoexport
14.3.1 导出JSON格式
14.3.2 导出CSV格式
14.4 数据导入mongoimport
14.4.1 JSON格式导入
14.4.2 CSV格式导入
第15章 MongoDB驱动
15.1 MongoDB驱动支持的开发语言
15.2 驱动使用流程
第16章 Java操作MongoDB
16.1 安装JDK
16.2 Eclipse安装
16.3 加载驱动
16.4 查阅Java操作语法
16.5 测试操作
16.5.1 连接数据库
16.5.2 插入数据
16.5.3 查询数据
16.5.4 更新数据
16.5.5 删除数据
16.5.6 聚合方法执行
16.5.7 操作GridFS
16.5.8 运行示例
第三部分 管理与开发进阶篇
第17章 副本集部署
17.1 总体思路
17.2 MongoDB环境准备
17.3 创建目录
17.4 创建Key
17.5 初始化副本集
17.6 数据同步测试
17.7 故障切换测试
17.8 Java程序连接MongoDB副本集测试
17.9 主从复制部署
第18章 分片部署
18.1 总体思路
18.2 创建3个Shard Server
18.2.1 创建目录
18.2.2 以分片Shard Server模式启动
18.3 启动Config Server
18.3.1 创建目录
18.3.2 以分片Config Server模式启动
18.4 启动Route Process
18.5 配置sharding
18.6 对数据库mytest启用分片
18.7 集合启用分片
18.8 分片集群插入数据测试
18.9 分片的管理
18.9.1 移除Shard Server,回收数据
18.9.2 新增Shard Server
第19章 分片+副本集部署
19.1 总体思路
19.2 创建3个复制集
19.2.1 创建目录
19.2.2 以复制集模式启动
19.2.3 初始化复制集
19.3 创建分片需要的Config Server与Route Process
19.3.1 创建目录
19.3.2 启动Config Server、Route Process
19.4 配置分片
第20章 springMVC+maven+MongoDB框架搭建
20.1 SpringMVC和Maven简介
20.2 Eclipse安装Maven插件
20.3 新建Maven类型的Web项目
20.4 搭建SpringMVC+MongoDB框架
20.4.1 jar包引入
20.4.2 新建SpringMVC配置文件
20.4.3 新建MongoDB配置文件
20.4.4 配置web.xml
20.4.5 创建index.jsp和IndexController
20.4.6 启动Web项目
第21章 注册登录功能的实现
21.1 UI框架Bootstrap
21.1.1 简介
21.1.2 应用Bootstrap
21.2 新建用户实体
21.3 注册功能编写
21.3.1 注册页面代码
21.3.2 注册后端代码
21.4 登录功能编写
21.4.1 登录页面代码
21.4.2 登录后端代码
21.5 运行测试
21.6 Sping Data MongoDB操作
21.6.1 插入数据
21.6.2 查询数据
21.6.3 更新数据
21.6.4 删除数据
21.6.5 聚合方法执行
21.6.6 操作GridFS
21.6.7 运行示例
第四部分 管理与开发经验篇
第22章 MongoDB开发的经验
22.1 尽量选取稳定新版本64位的MongoDB
22.2 数据结构的设计
22.3 查询的技巧
22.4 安全写入数据
22.5 索引设置的技巧
22.6 不要用GridFS处理小的二进制文件
22.7 优化器profiler
第23章 MongoDB管理的经验
23.1 MongoDB安全管理
23.2 不要将MongoDB与其他服务部署到同一台机器上
23.3 单机开启日志Journal,多机器使用副本集
23.4 生产环境不要信任repair恢复的数据
23.5 副本集管理
23.6 副本集回滚丢失的数据
23.7 分片的管理
23.8 MongoDB锁
附录A MongoDB地理位置距离单位
附录B 相关网址