0%

MongoDB权威指南PDF下载

《MongoDB权威指南》

链接: https://pan.baidu.com/s/181Mk5vRIzAJ6ZeJq2qrMqQ 提取码: sj6a

与传统的关系型数据库不同,MongoDB是一种面向文档的数据库。《MongoDB指南(第2版)》这一版共分为六部分,涵盖开发、管理以及部署的各个方面。分展示MongoDB基础知识、核心概念。第二部分介绍使用MongoDB进行开发,包括索引的概念以及各种特殊索引和集合的用法等。第三部分讲述复制,包括副本集的相关概念、创建方法,与应用程序的交互等。第四部讨论分片,包括分片的配置,片键的选择,集群的管理。第五部分阐述创建索引、移动和压缩数据等管理任务,以及MongoDB的持久数据存储。后一部分集中说明服务器管理。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687

前言

部分 MongoDB介绍

章 MongoDB简介 3

1.1 易于使用 3

1.2 易于扩展 4

1.3 丰富的功能 4

1.4 卓越的性能 5

1.5 小结 5

第2章 MongoDB基础知识 7

2.1 文档 7

2.2 集合 8

2.2.1 动态模式 8

2.2.2 命名 9

2.3 数据库 10

2.4 启动MongoDB 11

2.5 MongoDBshell简介 12

2.5.1 运行shell 12

2.5.2 MongoDB客户端 13

2.5.3 shell中的基本操作 14

2.6 数据类型 16

2.6.1 基本数据类型 16

2.6.2 日期 18

2.6.3 数组 18

2. 内嵌文档 19

2.6.5 _id和ObjectId 20

2.7 使用MongoDBshell 21

2.7.1 shell小贴士 22

2.7.2 使用shell执行脚本 23

2.7.3 创建mongorc.js文件 25

2.7.4 定制shell提示 26

2.7.5 编辑复合变量 26

2.7.6 集合命名注意事项 27

第3章 创建、更新和删除文档 29

3.1 插入并保存文档 29

3.1.1 批量插入 29

3.1.2 插入校验 30

3.2 删除文档 31

3.3 更新文档 32

3.3.1 文档替换 32

3.3.2 使用修改器 34

3.3.3 upsert 45

3.3.4 更新多个文档 47

3.3.5 返回被更新的文档 48

3.4 写入安全机制 50

第4章 查询 53

4.1 find简介 53

4.1.1 指定需要返回的键 54

4.1.2 55

4.2 查询条件 55

4.2.1 查询条件 55

4.2.2 OR查询 56

4.2.3 $not 57

4.2.4 条件语义 57

4.3 特定类型的查询 58

4.3.1 null 58

4.3.2 正则表达式 59

4.3.3 查询数组 59

4.3.4 查询内嵌文档

4.4 $where查询 65

4.5 游标 67

4.5.1 limit、skip和sort 69

4.5.2 避免使用skip略过大量结果 70

4.5.3 不错查询选项 72

4.5.4 获取一致结果 73

4.5.5 游标生命周期 75

4.6 数据库命令 75

第二部分 设计应用

第5章 索引 81

5.1 索引简介 81

5.1.1 复合索引简介 84

5.1.2 使用复合索引 90

5.1.3 $操作符如何使用索引 91

5.1.4 索引对象和数组 96

5.1.5 索引基数 98

5.2 使用explain()和hint() 98

5.3 何时不应该使用索引 103

5.4 索引类型 104

5.4.1 索引 104

5.4.2 稀疏索引 106

5.5 索引管理 107

5.5.1 标识索引 108

5.5.2 修改索引 108

第6章 特殊的索引和集合 111

6.1 固定集合 111

6.1.1 创建固定集合 113

6.1.2 自然排序 113

6.1.3 循环游标 115

6.1.4 没有_id索引的集合 115

6.2 TTL索引 116

6.3 全文本索引 116

6.3.1 搜索语法 119

6.3.2 优化全文本搜索 120

6.3.3 在其他语言中搜索 121

地理空间索引 121

.1 地理空间查询的类型 122

.2 复合地理空间索引 123

.3 2d索引 123

6.5 使用GridFS存储文件 125

6.5.1 GridFS入门 126

6.5.2 在MongoDB驱动程序中使用GridFS 126

6.5.3 揭开GridFS的面纱 127

第7章 聚合 129

7.1 聚合框架 129

7.2 管道操作符 131

7.2.1 $match 132

7.2.2 $project 132

7.2.3 $group 137

7.2.4 $unwind 140

7.2.5 $sort 141

7.2.6 $limit 142

7.2.7 $skip 142

7.2.8 使用管道 142

7.3 MapReduce 143

7.3.1 示例1:找出集合中的所有键 143

7.3.2 示例2:网页分类 145

7.3.3 MongoDB和MapReduce 146

7.4 聚合命令 148

7.4.1 count 149

7.4.2 distinct 149

7.4.3 group 150

第8章 应用程序设计 155

8.1 范式化与反范式化 155

8.1.1 数据表示的例子 156

8.1.2 基数 159

8.1.3 好友、粉丝,以及其他的麻烦事项 160

8.2 优化数据操作 162

8.2.1 优化文档增长 162

8.2.2 删除旧数据 1

8.3 数据库和集合的设计 1

8.4 一致性管理 165

8.5 模式迁移 166

8.6 不适合使用MongoDB的场景 167

第三部分 复制

第9章 创建副本集 171

9.1 复制简介 171

9.2 建立副本集 172

9.3 配置副本集 176

9.3.1 rs辅助函数 178

9.3.2 网络注意事项 178

9.4 修改副本集配置 178

9.5 设计副本集 180

9.6 成员配置选项 184

9.6.1 选举仲裁者 184

9.6.2 优先级 185

9.6.3 隐藏成员 186

9. 延迟备份节点 187

9.6.5 创建索引 187

0章 副本集的组成 189

10.1 同步 189

10.1.1 初始化同步 190

10.1.2 处理陈旧数据 193

10.2 心跳 193

10.3 选举 195

10.4 回滚 195

1章 从应用程序连接副本集 201

11.1 客户端到副本集的连接 201

11.2 等待写入复制 202

11.2.1 可能导致错误的原因 203

11.2.2 其他值 204

11.3 自定义复制保证规则 204

11.3.1 保证复制到每个数据中心的一台服务器上 204

11.3.2 保证写操作被复制到可见节点中的“大多数” 206

11.3.3 创建其他规则 206

11.4 将读请求发送到备份节点 207

11.4.1 出于一致性考虑 207

11.4.2 出于负载的考虑 208

11.4.3 何时可以从备份节点读取数据 208

2章 管理 211

12.1 以单机模式启动成员 211

12.2 副本集配置 212

12.2.1 创建副本集 212

12.2.2 修改副本集成员 213

12.2.3 创建比较大的副本集 213

12.2.4 强制重新配置 214

12.3 修改成员状态 215

12.3.1 把主节点变为备份节点 215

12.3.2 阻止选举 215

12.3.3 使用维护模式 215

12.4 监控复制 216

12.4.1 获取状态 216

12.4.2 复制图谱 218

12.4.3 复制循环 220

12.4.4 禁用复制链 220

12.4.5 计算延迟 221

12.4.6 调整oplog大小 222

12.4.7 从延迟备份节点中恢复 223

12.4.8 创建索引 224

12.4.9 在预算有限的情况下进行复制 225

12.4.10 主节点如何跟踪延迟 226

12.5 主从模式 227

12.5.1 从主从模式切换到副本集模式 228

12.5.2 让副本集模仿主从模式的行为 228

第四部分 分片

3章 分片 233

13.1 分片简介 233

13.2 理解集群的组件 234

13.3 快速建立一个简单的集群 235

4章 配置分片 243

14.1 何时分片 243

14.2 启动服务器 244

14.2.1 配置服务器 244

14.2.2 mongos进程 245

14.2.3 将副本集转换为分片 245

14.2.4 增加集群容量 247

14.2.5 数据分片 247

14.3 MongoDB如何追踪集群数据 248

14.3.1 块范围 249

14.3.2 拆分块 250

14.4 均衡器 254

5章 选择片键 257

15.1 检查使用情况 257

15.2 数据分发 258

15.2.1 升序片键 258

15.2.2 随机分发的片键 261

15.2.3 基于位置的片键 262

15.3 片键策略 263

15.3.1 散列片键 2

15.3.2 GridFS的散列片键 265

15.3.3 流水策略 266

15.3.4 多热点 267

15.4 片键规则和指导方针 270

15.4.1 片键 270

15.4.2 片键的势 270

15.5 控制数据分发 270

15.5.1 对多个数据库和集合使用一个集群 270

15.5.2 手动分片 272

6章 分片管理 275

16.1 检查集群状态 275

16.1.1 使用sh.status查看集群摘要信息 275

16.1.2 检查配置信息 277

16.2 查看网络连接 282

16.2.1 查看连接统计 283

16.2.2 连接数量 283

16.3 服务器管理 285

16.3.1 添加服务器 285

16.3.2 修改分片的服务器 285

16.3.3 删除分片 286

16.3.4 修改配置服务器 288

1 数据均衡 289

1.1 均衡器 289

1.2 修改块大小 290

1.3 移动块 290

1.4 特大块 292

1.5 刷新配置 295

第五部分 应用管理

7章 了解应用的动态 299

17.1 了解正在进行的操作 299

17.1.1 寻找有问题的操作 301

17.1.2 终止操作的执行 301

17.1.3 假象 302

17.1.4 避免幽灵操作 302

17.2 使用系统分析器 303

17.3 计算空间消耗 305

17.3.1 文档 305

17.3.2 集合 305

17.3.3 数据库 306

17.4 使用mongotop和monogostat 307

8章 数据管理 311

18.1 配置身份验证 311

18.1.1 身份验证基本原理 312

18.1.2 配置身份验证 313

18.1.3 身份验证的工作原理 314

18.2 建立和删除索引 315

18.2.1 在独立的服务器上建立索引 315

18.2.2 在副本集上建立索引 315

18.2.3 在分片集群上建立索引 316

18.2.4 删除索引 316

18.2.5 注意内存溢出杀手 316

18.3 预热数据 317

18.3.1 将数据库移至内存 317

18.3.2 将集合移至内存 318

18.3.3 自定义预热 318

18.4 压缩数据 320

18.5 移动集合 321

18.6 预分配数据文件 322

9章 持久性 323

19.1 日记系统的用途 323

19.1.1 批量提交写入操作 324

19.1.2 设定提交时间间隔 325

19.2 关闭日记系统 325

19.2.1 替换数据文件 325

19.2.2 修复数据文件 326

19.2.3 关于mongod.lock文件 326

19.2.4 隐蔽的异常退出 327

19.3 MongoDB无法保证的事项 327

19.4 检验数据损坏 327

19.5 副本集中的持久性 329

第六部分 服务器管理

第20章 启动和停止MongoDB 333

20.1 从命令行启动 333

20.2 停止MongoDB 336

20.3 安全性 337

20.3.1 数据加密 338

20.3.2 SSL安全连接 338

20.4 日志 338

第21章 监控MongoDB 341

21.1 监控内存使用状况 341

21.1.1 有关电脑内存的介绍 341

21.1.2 跟踪监测内存使用状况 342

21.1.3 跟踪监测缺页中断 343

21.1.4 减少索引树的脱靶次数 345

21.1.5 IO延迟 345

21.1.6 跟踪监测后台刷新平均时间 346

21.2 计算工作集的大小 347

21.3 跟踪监测性能状况 349

21.4 监控副本集 352

第22章 备份 355

22.1 对服务器进行备份 355

22.1.1 文件系统快照 355

22.1.2 复制数据文件 356

22.1.3 使用mongodump 357

22.2 对副本集进行备份 359

22.3 对分片集群进行备份 360

22.3.1 备份和恢复整个集群 360

22.3.2 备份和恢复单独的分片 360

22.4 使用mongooplog进行增量备份 361

第23章 部署MongoDB 363

23.1 设计系统结构 363

23.1.1 选择存储介质 363

23.1.2 推荐的RAID配置 367

23.1.3 CPU 368

23.1.4 选择操作系统 368

23.1.5 交换空间 369

23.1.6 文件系统 369

23.2 虚拟化 370

23.2.1 禁止内存过度分配 370

23.2.2 神秘的内存 370

23.2.3 处理网络磁盘的IO问题 371

23.2.4 使用非网络磁盘 372

23.3 系统配置 372

23.3.1 禁用NUMA 372

23.3.2 更智能地预读取数据 375

23.3.3 禁用大内存页面 376

23.3.4 选择一种磁盘调度算法 377

23.3.5 不要记录访问时间 377

23.3.6 修改 378

23.4 网络配置 379

23.5 系统管理 381

23.5.1 时钟同步 381

23.5.2 OOMKiller 381

23.5.3 关闭定期任务 382

附录A 安装MongoDB 383

附录B 深入MongoDB 387


最后,这里为大家准备了几百本的互联网电子书,有需要的过来取吧。点击获取

本页书籍均来自网络,如有侵权,请联系我立即删除。我的邮箱:yaojianguolq@163.com

------ 全文结束------