图书目录

目    录

第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系统上安装MongoDB 13

2.1.1  安装MongoDB 13

2.1.2  配置环境变量 20

2.1.3  其他安装形式 21

2.1.4  常见问题和注意事项 21

2.2  在Linux系统上安装MongoDB 22

2.2.1  使用yum方式安装MongoDB 22

2.2.2  卸载MongoDB 25

2.2.3  使用其他方式安装MongoDB 26

2.2.4  常见错误和注意事项 27

2.3  本章小结 27

第3章  MongoDB可视化管理工具 28

3.1  MongoDB Compass 28

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 Premium 33

3.2.1  Navicat Premium的功能特点 34

3.2.2  Navicat Premium的安装 35

3.2.3  Navicat Premium的使用 37

3.3  NoSQLBooster for MongoDB 40

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 Shell 50

4.1.2  在Linux系统上安装MongoDB Shell 52

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  运行JavaScript脚本 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  驱动程序API 176

9.2.1  回调API 176

9.2.2  核心API 177

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 Files 234

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/SSL 244

14.5  本章小结 244

第15章  性能优化 245

15.1  性能优化概述 245

15.2  索引优化 246

15.3  查询优化 247

15.4  资源管理优化 248

15.5  本章小结 248