《MongoDB基础、运维与性能优化》
本书内容
MongoDB数据库与传统的关系数据库不同,是一种面向文档的、介于非关系数据库和关系数据库之间的数据库。《MongoDB基础、运维与性能优化》帮助读者掌握MongoDB 8数据库及其相关技术栈的开发知识,涵盖MongoDB 8数据库应用开发的要点。《MongoDB基础、运维与性能优化》配套PPT课件。
《MongoDB基础、运维与性能优化》共分15章,内容包括MongoDB数据库基础知识、系统安装与环境搭建、可视化工具的使用、Shell工具的使用、基础操作、聚合、数据模型、时间序列、事务、索引、副本集、分片、存储、安全以及性能优化。
《MongoDB基础、运维与性能优化》内容翔实、代码精练、重点突出、实例丰富,能够帮助初学者快速掌握MongoDB数据库运维和开发方法,对提高Web应用开发人员的技术水平也有非常积极的指导作用。
本书作者
王金柱,拥有10多年丰富的IT从业经历,对Java、Vue.js、Node.js、React.js等Web前端开发有着独到的经验,精通Python、Java等编程语言以及MySQL、NoSQL数据库。曾从事过多家大型央企与上市公司的企业级Web应用系统开发工作。创作过多本前端、后端开发类的图书,部分包括《MongoDB基础、运维与性能优化》《Vue.js+Node.js全栈开发实战(第2版)》《Django 5企业级Web应用开发实战(视频教学版)》《HTML5移动网站与App开发实战》《Vue.js+Node.js全栈开发实战》《Netty实战》《React.js 16从入门到实战》。
本书读者
《MongoDB基础、运维与性能优化》也适用于高等院校或高职高专院校学习MongoDB相关课程的学生。
本书目录
目 录
第1章 MongoDB简介1
1.1 MongoDB概述1
1.2 MongoDB的发展历史4
1.3 MongoDB的优缺点8
1.3.1 MongoDB的优点8
1.3.2 MongoDB的缺点9
1.4 常用概念10
1.5 数据类型11
1.6 本章小结12
第2章 MongoDB的安装13
2.1 在Windows系统上安装MongoDB13
2.1.1 安装MongoDB13
2.1.2 配置环境变量20
2.1.3 其他安装形式21
2.1.4 常见问题和注意事项21
2.2 在Linux系统上安装MongoDB22
2.2.1 使用yum方式安装MongoDB22
2.2.2 卸载MongoDB25
2.2.3 使用其他方式安装MongoDB26
2.2.4 常见错误和注意事项27
2.3 本章小结27
第3章 MongoDB可视化管理工具28
3.1 MongoDB Compass28
3.1.1 MongoDB Compass的特点28
3.1.2 MongoDB Compass的安装与更新29
3.1.3 MongoDB Compass的使用30
3.1.4 注意事项33
3.2 Navicat Premium33
3.2.1 Navicat Premium的功能特点34
3.2.2 Navicat Premium的安装35
3.2.3 Navicat Premium的使用37
3.3 NoSQLBooster for MongoDB40
3.3.1 NoSQLBooster for MongoDB的功能特点及使用场景40
3.3.2 NoSQLBooster for MongoDB的安装41
3.3.3 NoSQLBooster for MongoDB的使用42
3.4 本章小结48
第4章 MongoDB Shell(mongosh)49
4.1 MongoDB Shell的安装49
4.1.1 在Windows系统上安装MongoDB Shell50
4.1.2 在Linux系统上安装MongoDB Shell52
4.2 MongoDB Shell的配置53
4.2.1 使用命令编辑器53
4.2.2 配置设置54
4.2.3 自定义mongosh提示56
4.2.4 配置远程数据搜集58
4.3 MongoDB Shell的运行命令58
4.4 使用MongoDB Shell进行简单操作59
4.4.1 新增60
4.4.2 查询61
4.4.3 修改63
4.4.4 删除66
4.5 客户端字段级加密67
4.6 脚本69
4.6.1 运行Java脚本69
4.6.2 运行配置文件中的代码71
4.7 本章小结73
第5章 数据库操作74
5.1 基础操作74
5.1.1 操作数据库74
5.1.2 操作集合或视图78
5.1.3 操作文档86
5.2 文本搜索86
5.3 地理空间查询88
5.3.1 GeoJSON对象88
5.3.2 传统坐标对89
5.3.3 2dsphere索引89
5.3.4 2d索引95
5.4 常用的操作符97
5.4.1 查询和投影操作符97
5.4.2 更新操作符100
5.4.3 聚合管道操作符102
5.4.4 查询修饰符103
5.5 本章小结104
第6章 聚合105
6.1 聚合方法105
6.2 聚合管道106
6.2.1 管道和阶段107
6.2.2 管道操作符107
6.2.3 管道表达式与表达式操作符108
6.2.4 聚合操作117
6.3 本章小结124
第7章 数据模型125
7.1 数据建模介绍125
7.2 架构设计流程126
7.2.1 确定工作负载126
7.2.2 映射模式关系127
7.2.3 应用设计模式128
7.3 模型设计模式130
7.3.1 分组数据130
7.3.2 文档和模式版本控制136
7.4 数据一致性143
7.4.1 用例描述143
7.4.2 强制执行事务的数据一致性144
7.4.3 通过嵌入实现数据一致性146
7.5 模式验证148
7.5.1 模式验证使用场景148
7.5.2 指定JSON schema验证149
7.5.3 指定允许的字段值151
7.5.4 使用查询运算符指定验证152
7.5.5 指定现有文档的验证级别153
7.5.5 指定现有文档的验证级别156
7.5.6 选择如何处理无效文档159
7.6 本章小结161
第8章 时间序列162
8.1 时间序列介绍162
8.2 创建和查询时间序列集合163
8.2.1 创建时间序列集合163
8.2.2 在时间序列集合中插入测量值164
8.2.3 查询时间序列集合165
8.2.4 在时间序列集合上运行聚合165
8.3 列出数据库中的时间序列集合166
8.4 设置时间序列集合的自动删除167
8.5 设置时间序列数据的粒度168
8.6 向时间序列集合添加从节点索引170
8.6.1 创建二级索引170
8.6.2 使用二级索引提高排序性能171
8.6.3 时间序列集合的最新数据点查询172
8.7 本章小结173
第9章 事务174
9.1 事务基础原理174
9.2 驱动程序API176
9.2.1 回调API176
9.2.2 核心API177
9.2.3 事务错误处理178
9.3 事务与操作180
9.3.1 事务操作基础180
9.3.2 在事务中创建集合和索引180
9.3.3 计数、限制性与去重操作181
9.4 读取偏好与读写关注181
9.4.1 事务和读取偏好181
9.4.2 事务和读关注182
9.4.3 事务和写关注182
9.5 本章小结183
第10章 索引184
10.1 索引介绍184
10.2 创建索引185
10.3 指定索引名称186
10.4 删除索引187
10.5 单字段索引188
10.6 对嵌入式文档创建索引189
10.7 复合索引190
10.7.1 复合索引介绍190
10.7.2 创建复合索引191
10.7.3 复合索引排序顺序192
10.8 多键索引193
10.8.1 多键索引介绍193
10.8.2 在数组字段上创建索引195
10.8.3 为数组中的嵌入字段创建索引196
10.8.4 多键索引边界198
10.8.5 多键索引的复合边界199
10.9 通配符索引203
10.9.1 通配符索引介绍203
10.9.2 对单个字段创建通配符索引204
10.9.3 在通配符索引中包含或排除字段205
10.9.4 对所有字段创建通配符索引207
10.10 本章小结209
第11章 副本集210
11.1 副本集介绍210
11.2 异步复制212
11.3 自动故障转移212
11.4 读取操作213
11.4.1 读取偏好213
11.4.2 数据可见性214
11.4.3 镜像读214
11.5 操作日志215
11.5.1 操作日志基础215
11.5.2 操作日志大小215
11.5.3 最短操作日志保留期216
11.5.4 可能需要更大操作日志的工作负载216
11.5.5 操作日志状态217
11.6 本章小结217
第12章 分片218
12.1 分片基础218
12.1.1 分片介绍218
12.1.2 分片键介绍219
12.1.3 分片的优点219
12.2 分片集群220
12.2.1 分片集群的组成220
12.2.2 生产配置220
12.2.3 开发配置221
12.3 分片键的应用222
12.3.1 分片键索引222
12.3.2 将集合分片223
12.3.3 选择分片键223
12.3.4 更改分片键226
12.3.5 对集合重新分片226
12.4 本章小结229
第13章 存储230
13.1 存储介绍230
13.2 WiredTiger存储引擎231
13.2.1 WiredTiger存储引擎介绍231
13.2.2 事务(读写)并发231
13.2.3 文档级并发性231
13.2.4 快照和检查点232
13.2.5 日志与压缩232
13.2.6 内存使用233
13.3 日志233
13.3.1 日志和WiredTiger存储引擎233
13.3.2 日志记录进程234
13.3.3 Journal Files234
13.3.4 日志和内存存储引擎235
13.4 本章小结235
第14章 安全性236
14.1 安全性介绍236
14.2 基于SCRAM的身份验证237
14.2.1 SCRAM机制237
14.2.2 使用SCRAM对客户端进行身份验证238
14.3 基于x.509的身份验证240
14.3.1 x.509机制240
14.3.2 使用x.509对客户端进行身份验证240
14.4 加密242
14.4.1 加密方法242
14.4.2 选择正在使用的加密方法242
14.4.3 静态加密243
14.4.4 TLS/SSL244
14.5 本章小结244
第15章 性能优化245
15.1 性能优化概述245
15.2 索引优化246
15.3 查询优化247
15.4 资源管理优化248
15.5 本章小结248
本书特色
(1)《MongoDB基础、运维与性能优化》内容包括MongoDB数据库基础知识、系统安装与环境搭建、可视化工具使用、Shell工具使用、基础操作、聚合、数据模型、时间序列、事务、索引、副本集、分片、存储、安全以及性能优化。
(2)涵盖MongoDB数据库绝大部分的运维和开发要点,帮助读者系统掌握MongoDB的全貌。
(3)全程知识点与应用示例相结合,帮助读者快速学会MongoDB数据库的运维技巧,并轻松应用到开发实践中。
(4)全书知识点的讲解按照类别进行合理划分,方便读者按需阅读,并可作为查询参考手册。
(5)配套PPT课件、读者微信交流群。
本文摘自《MongoDB基础、运维与性能优化》,获出版社和作者授权发布。