MongoDB從入門到商業(yè)實戰(zhàn)
定 價:119 元
- 作者:張雯杰
- 出版時間:2019/9/1
- ISBN:9787121372247
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.132.3
- 頁碼:412
- 紙張:
- 版次:01
- 開本:16K
本書基于MongoDB 4.0版本編寫。
前半部分從數(shù)據(jù)庫管理員的角度出發(fā),介紹MongoDB理論知識及環(huán)境架設(shè);
后半部分則是從應(yīng)用角度出發(fā),通過大量的實例深入地講解MongoDB的具體操作。
-
全書共分為4篇。
- 第1篇“MongoDB環(huán)境的理論與實踐”,介紹MongoDB的基礎(chǔ)知識,搭建MongoDB環(huán)境的步驟,MongoDB的整體架構(gòu)、副本集、分片集群,以及優(yōu)化操作系統(tǒng)使得MongoDB的性能得以提升。
- 第2篇“數(shù)據(jù)管理操作”,以實際操作介紹MongoDB對數(shù)據(jù)的操作及存儲過程,并且展示如何使用Python來實現(xiàn)GridFS操作。
- 第3篇“運維與安全管理”,通過實際操作介紹MongoDB的安全管理與運維監(jiān)控的相關(guān)功能,如用戶管理、角色管理、數(shù)據(jù)庫的備份和恢復(fù)、使用監(jiān)控工具對MongoDB的活動進(jìn)行監(jiān)控,以及通過客戶端軟件來操作與管理MongoDB。
- 第4篇“應(yīng)用開發(fā)與案例”,包括通過各種程序語言(如Java、C#、Python、Node.js)訪問和操作MongoDB,以及如何運用整本書的知識滿足現(xiàn)實中的數(shù)據(jù)庫管理及應(yīng)用需求。
本書內(nèi)容豐富、條理清晰、通俗易懂,非常適合MongoDB的初學(xué)者和進(jìn)階讀者閱讀,同時也適合作為相關(guān)培訓(xùn)機(jī)構(gòu)的教材。
知識點新:基于MongoDB 4.0 版本
過程完整:從基礎(chǔ)語法到實際開發(fā)項目全過程
實例豐富:大量的實例,操作性強(qiáng),便于理解
雙色印刷:用手寫筆記形式標(biāo)出重點和難點
語言流暢:采用短段、短句,順流而下般流暢
經(jīng)驗分享:除講軟件知識,還講實際工作經(jīng)驗
兩人都是富士 康公司數(shù)據(jù)庫技術(shù)的團(tuán)隊的負(fù)責(zé)人負(fù)責(zé)富士康集團(tuán)中央信息商業(yè)智能(BI) 、大數(shù)據(jù)應(yīng)用、數(shù)據(jù)庫管理業(yè)務(wù)10年/主管職5年(目前擔(dān)任中央信息處數(shù)據(jù)庫應(yīng)用管理部門主管)自2015年接觸MongoDB至今超過3年
第1篇
MongoDB環(huán)境的理論與實踐 / 1
第1章
初識NoSQL數(shù)據(jù)庫與MongoDB / 2
1.1 初識NoSQL數(shù)據(jù)庫 / 2
1.1.1 何為NoSQL數(shù)據(jù)庫 / 2
1.1.2 NoSQL數(shù)據(jù)庫有哪些特征 / 3
1.1.3 為何NoSQL數(shù)據(jù)庫會崛起? / 4
1.1.4 NoSQL數(shù)據(jù)庫有哪些種類? / 4
1.1.5 NoSQL數(shù)據(jù)庫與RDB該怎么選擇呢 / 5
1.2 初識MongoDB / 6
1.2.1 何為MongoDB / 6
1.2.2 MongoDB有哪些特性 / 6
1.2.3 MongoDB適用于哪些場景 / 7
1.2.4 MongoDB中的對象 / 7
1.2.5 MongoDB的文檔知識 / 9
1.2.6 MongoDB的數(shù)據(jù)類型 / 11
第2章部署MongoDB單機(jī)版 / 16
2.1 操作系統(tǒng)硬件規(guī)格選擇 / 16
2.2 部署Windows版MongoDB / 18
2.2.1 下載軟件 / 18
2.2.2 部署安裝版 / 19
2.2.3 部署免安裝版 / 25
2.3 部署Linux版MongoDB / 26
2.3.1 下載軟件 / 26
2.3.2 啟動MongoDB / 27
2.3.3 配置啟動文件 / 28
2.3.4 啟動/確定運行/終止服務(wù) / 31
2.3.5 配置單機(jī)權(quán)限——Auth屬性值 / 33
2.3.6 配置自啟動服務(wù) / 35
第3章 認(rèn)識MongoDB集群 / 40
3.1 認(rèn)識集群 / 40
3.1.1 從一個日常生活情境著手 / 40
3.1.2 mongos服務(wù) / 44
3.1.3 config服務(wù) / 46
3.1.4 shard服務(wù) / 47
3.2 認(rèn)識副本集(Replica Set) / 47
3.2.1 副本集簡介 / 48
3.2.2 高可用(節(jié)點故障轉(zhuǎn)移) / 50
3.2.3 數(shù)據(jù)讀寫策略 / 59
3.3 認(rèn)識分片集(Sharded Cluster) / 63
3.3.1 分片集簡介 / 63
3.3.2 片鍵(Shard Key) / 65
3.3.3 控制數(shù)據(jù)分發(fā)——分片標(biāo)簽 / 67
3.3.4 平衡器(Balancer) / 68
第4章 集群的配置 / 73
4.1 配置副本集 / 73
4.1.1 了解要配置的架構(gòu) / 73
4.1.2 配置數(shù)據(jù)副本集(含Arbiter) / 74
4.1.3 配置內(nèi)存節(jié)點 / 78
4.2 配置分片集群 / 79
4.2.1 了解要配置的架構(gòu) / 79
4.2.2 配置config副本集 / 81
4.2.3 配置mongos / 84
4.2.4 配置集群的權(quán)限 / 87
4.2.5 配置自啟動服務(wù) / 88
4.2.6 設(shè)置數(shù)據(jù)庫分片(含指定數(shù)據(jù)存放分片) / 91
4.3 集群的常用配置 / 93
4.3.1 查看分片信息狀態(tài) / 93
4.3.2 調(diào)整副本集 / 95
4.3.3 調(diào)整分片集 / 98
4.3.4 管理平衡器(Balancer) / 99
4.3.5 讓數(shù)據(jù)在分片間遷移 / 100
第5章 優(yōu)化Linux以提升MongoDB性能 / 101
5.1 實現(xiàn)所有MongoDB Server時間的
同步 / 101
5.1.1 了解時間同步(NTP) / 101
5.1.2 手動設(shè)定時間同步 / 102
5.1.3 通過服務(wù)自動實現(xiàn)時間同步 / 102
5.2 減少時間戳記錄 / 103
5.3 關(guān)閉磁盤預(yù)讀功能 / 104
5.3.1 手動關(guān)閉 / 105
5.3.2 讓系統(tǒng)自動關(guān)閉 / 105
5.4 關(guān)閉內(nèi)存管理 / 108
5.4.1 了解標(biāo)準(zhǔn)大頁和透明大頁 / 108
5.4.2 在CentOS 7.0中配置THP / 108
5.5 禁用“非統(tǒng)一內(nèi)存訪問”(NUMA) / 109
5.5.1 NUMA的工作原理 / 109
5.5.2 查看硬件的NUMA分配節(jié)點資源的情況 / 110
5.5.3 禁用NUMA機(jī)制 / 110
第2篇 數(shù)據(jù)管理操作 / 111
第6章 MongoDB基礎(chǔ)操作 / 112
6.1 文檔的操作 / 112
6.1.1 插入 / 112
6.1.2 更新 / 116
6.1.3 刪除 / 120
6.1.4 基本查詢 / 121
6.1.5 條件查詢 / 122
6.1.6 正則表達(dá)式 / 124
6.1.7 內(nèi)嵌文檔查詢 / 126
6.1.8 數(shù)據(jù)校驗 / 127
6.1.9 原子性操作 / 129
6.2 集合的操作 / 131
6.2.1 集合管理 / 131
6.2.2 固定集合 / 133
6.3 創(chuàng)建索引 / 134
6.3.1 單字段索引 / 135
6.3.2 復(fù)合索引 / 137
6.3.3 TTL索引 / 137
6.3.4 全文本索引 / 138
6.3.5 地理空間索引 / 139
6.3.6 哈希索引(Hash Index) / 142
6.3.7 查詢優(yōu)化診斷 / 142
6.4 常用聚合操作 / 143
6.4.1 聚合——$group / 144
6.4.2 顯示字段——$project / 145
6.4.3 數(shù)據(jù)排序、跳過幾個文檔、限制顯示文檔數(shù)量——$sort、$skip、$limit / 152
6.4.4 條件篩選——$match / 152
6.4.5 多表關(guān)聯(lián)查詢——$lookup / 153
6.4.6 計算文檔數(shù)量——$count / 155
6.4.7 展開數(shù)組——$unwind / 155
6.4.8 結(jié)果匯入新表——$out / 156
6.5 映射和歸約(MapReduce) / 157
6.5.1 MapReduce介紹 / 157
6.5.2 范例1:數(shù)據(jù)匯總 / 158
6.5.3 范例2:存成數(shù)組 / 160
6.6 存儲過程 / 162
6.6.1 保存存儲過程 / 162
6.6.2 查看存儲過程 / 163
6.6.3 執(zhí)行存儲過程 / 163
第7章 大文件存儲——MongoDB GridFS / 165
7.1 GridFS介紹 / 165
7.1.1 GridFS如何存儲文檔 / 165
7.1.2 認(rèn)識chunks與files集合 / 166
7.2 GridFS操作 / 167
7.2.1 通過GridFS上傳文件 / 168
7.2.2 通過GridFs查看文件列表 / 168
7.2.3 通過GridFs下載文件 / 168
7.2.4 通過GridFS刪除文件 / 169
7.2.5 通過GridFS查找文件 / 169
7.2.6 GridFS的其余參數(shù) / 169
7.3 用Python實現(xiàn)GridFS操作 / 170
第3篇 運維與安全管理 / 173
第8章 數(shù)據(jù)庫安全管理與審計 / 174
8.1 權(quán)限管理簡介 / 174
8.2 用戶管理 / 175
8.2.1 創(chuàng)建用戶與登錄 / 175
8.2.2 修改用戶 / 178
8.2.3 刪除用戶 / 179
8.2.4 查詢用戶 / 180
8.2.5 授予用戶權(quán)限 / 183
8.2.6 撤銷用戶權(quán)限 / 183
8.3 角色管理 / 183
8.3.1 內(nèi)建角色 / 183
8.3.2 創(chuàng)建自定義角色 / 186
8.3.3 修改自定義角色 / 187
8.3.4 刪除自定義角色 / 188
8.3.5 查詢自定義角色 / 188
8.3.6 授予角色權(quán)限 / 190
8.3.7 撤銷角色權(quán)限 / 191
8.4 身份驗證 / 193
8.4.1 SCRAM / 193
8.4.2 x.509 / 195
8.5 數(shù)據(jù)加密 / 198
8.5.1 動態(tài)數(shù)據(jù)加密(傳輸加密) / 198
8.5.2 靜態(tài)數(shù)據(jù)加密 / 198
8.6 審計 / 198
8.6.1 審計的啟用與配置 / 199
8.6.2 審計事件與過濾 / 199
8.7 檢測安全漏洞 / 200
第9章 備份與恢復(fù) / 202
9.1 了解備份/恢復(fù) / 202
9.2 邏輯備份/恢復(fù)的常用命令 / 203
9.2.1 備份/恢復(fù) / 203
9.2.2 導(dǎo)出/導(dǎo)入 / 206
9.3 物理備份/恢復(fù)的常用命令 / 210
9.4 備份/恢復(fù)的具體方案 / 211
9.4.1 單機(jī)的備份/恢復(fù) / 211
9.4.2 副本集的備份/恢復(fù) / 212
9.4.3 分片集群的備份/恢復(fù) / 214
第10章 監(jiān)控管理 / 216
10.1 監(jiān)控MongoDB / 216
10.1.1 MongoDB自帶監(jiān)控工具 / 217
10.1.2 mongo shell中的監(jiān)控指令 / 219
10.1.3 第三方監(jiān)控工具 / 223
10.1.4 免費監(jiān)控服務(wù) / 224
10.2 官方提供的運維管理系統(tǒng)——MongoDB Ops Manager / 225
10.2.1 認(rèn)識Ops Manager / 226
10.2.2 Ops Manager的功能 / 227
第11章 客戶端軟件 / 231
11.1 官方客戶端軟件 / 231
11.1.1 MongoDB Compass簡介 / 231
11.1.2 創(chuàng)建數(shù)據(jù)庫及集合 / 232
11.1.3 新增集合中的文檔及查詢數(shù)據(jù) / 233
11.1.4 查詢文檔 / 233
11.1.5 進(jìn)行聚合操作 / 234
11.1.6 查詢執(zhí)行計劃 / 235
11.1.7 建立數(shù)據(jù)校驗規(guī)則 / 236
11.1.8 進(jìn)行監(jiān)控 / 237
11.2 第三方客戶端軟件 / 238
11.2.1 Studio 3T for MongoDB / 238
11.2.2 Robo 3T / 245
11.2.3 NoSQL Manager / 246
11.3 總結(jié) / 251
第4篇 應(yīng)用開發(fā)與案例 / 253
第12章 用Java操作MongoDB / 254
12.1 環(huán)境準(zhǔn)備 / 254
12.1.1 環(huán)境說明 / 254
12.1.2 配置MongoDB的Java驅(qū)動 / 255
12.2 建立連接與斷開連接 / 256
12.3 應(yīng)用與操作 / 259
12.3.1 新增文檔 / 259
12.3.2 刪除文檔 / 261
12.3.3 修改文檔 / 263
12.4 查詢文檔數(shù)據(jù) / 266
12.4.1 限制查詢結(jié)果集的大小 / 266
12.4.2 限制查詢返回的字段 / 266
12.4.3 按條件進(jìn)行查詢 / 267
12.4.4 對查詢結(jié)果分頁 / 268
12.4.5 用聚合命令查詢文檔 / 271
12.4.6 應(yīng)用索引查詢 / 272
12.5 使用正則表達(dá)式 / 275
12.6 批量處理數(shù)據(jù) / 275
12.7 創(chuàng)建文檔關(guān)聯(lián)查詢 / 277
12.8 操作MongoDB GridFS / 279
12.9 小結(jié) / 282
第13章 用C#操作MongoDB / 283
13.1 環(huán)境準(zhǔn)備 / 283
13.1.1 環(huán)境說明 / 283
13.1.2 配置MongoDB驅(qū)動 / 284
13.2 建立連接 / 285
13.3 應(yīng)用與操作 / 287
13.3.1 新增文檔 / 287
13.3.2 刪除文檔 / 289
13.3.3 修改文檔 / 290
13.4 查詢文檔數(shù)據(jù) / 293
13.4.1 限制查詢結(jié)果集大小 / 293
13.4.2 限制查詢返回的字段 / 294
13.4.3 按條件進(jìn)行查詢 / 295
13.4.4 將查詢結(jié)果分頁顯示 / 296
13.4.5 使用聚合命令查詢文檔 / 297
13.4.6 應(yīng)用索引查詢 / 299
13.5 使用正則表達(dá)式 / 301
13.6 批量處理數(shù)據(jù) / 302
13.7 創(chuàng)建文檔關(guān)聯(lián)查詢 / 302
13.8 操作MongoDB GridFS / 304
13.9 小結(jié) / 307
第14章 用Python操作MongoDB / 308
14.1 環(huán)境準(zhǔn)備 / 309
14.1.1 安裝Python / 309
14.1.2 安裝pymongo / 310
14.2 建立連接與斷開連接 / 310
14.3 應(yīng)用與操作 / 311
14.3.1 新增文檔 / 311
14.3.2 刪除文檔 / 315
14.3.3 修改文檔 / 316
14.4 查詢文檔數(shù)據(jù) / 318
14.4.1 限制查詢結(jié)果集大小 / 318
14.4.2 限制查詢返回的字段 / 320
14.4.3 用復(fù)雜條件進(jìn)行查詢 / 322
14.4.4 將查詢結(jié)果分頁顯示 / 323
14.4.5 用聚合方法查詢文檔 / 325
14.4.6 用索引查詢 / 326
14.5 使用正則表達(dá)式 / 331
14.6 批量處理數(shù)據(jù) / 333
14.7 創(chuàng)建文檔關(guān)聯(lián)查詢 / 336
14.8 操作MongoDB GridFS / 339
14.9 小結(jié) / 341
第15章 用Node.js操作MongoDB / 342
15.1 準(zhǔn)備環(huán)境 / 342
15.1.1 安裝Node.js / 342
15.1.2 安裝MongoDB包 / 344
15.2 建立與斷開連接 / 344
15.3 應(yīng)用與操作 / 347
15.3.1 新增文檔 / 347
15.3.2 刪除文檔 / 350
15.3.3 修改文檔 / 351
15.4 查詢文檔 / 354
15.4.1 限制查詢結(jié)果集大小 / 354
15.4.2 限制查詢字段 / 357
15.4.3 查詢條件使用 / 358
15.4.4 將查詢結(jié)果分頁 / 359
15.4.5 使用聚合方法查詢文檔 / 361
15.4.6 用索引進(jìn)行查詢 / 362
15.5 使用正則表達(dá)式 / 365
15.6 批理處理數(shù)據(jù) / 366
15.7 創(chuàng)建文檔關(guān)聯(lián)查詢 / 367
15.8 操作MongoDB GridFS / 369
15.9 小結(jié) / 371
第16章 實際應(yīng)用案例 / 372
16.1 搭建跨區(qū)域數(shù)據(jù)中心 / 372
16.1.1 需求描述 / 372
16.1.2 架構(gòu)設(shè)計 / 373
16.1.3 架構(gòu)配置 / 375
16.2 用MongoDB實現(xiàn)流式數(shù)據(jù)處理 / 378
16.2.1 任務(wù)與目標(biāo) / 378
16.2.2 問題展開 / 378
16.2.3 解決方案 / 379
16.2.4 代碼編寫 / 382
16.3 用“Node.js+MongoDB”實現(xiàn)高并發(fā)的網(wǎng)絡(luò)聊天室 / 386
16.3.2 解決方案 / 387
16.3.3 MongoDB應(yīng)用 / 387
16.3.4 代碼編寫 / 389