發表於2024-11-23
本書為沒有MongoDB 或者NoSQL經驗的開發者編寫
本書分三部分通過大量的實例代碼介紹瞭MongoDB數據庫底層的實現以及大型互聯網Web項目數據庫設計原則。第一部分對MongoDB進行瞭整體介紹,並介紹瞭實際的開發例子,另外還介紹瞭JavaScript shell和Ruby驅動。第二部分通過逐步實現一個電商數據模型和實現必要的CRUD操作來詳細介紹瞭MongoDB的文檔數據模型、查詢語言和CRUD(新增、讀取、更新和刪除)操作。本書的最後部分從數據庫專傢的角度來看待MongoDB,介紹瞭數據庫的性能、部署、容錯和伸縮性等所有的知識。
本書適閤想深入學習MongoDB的開發人員,主要關注MongoDB數據庫。
Kyle Banker在MongoDB開發團隊之後,就職於一傢創業公司。
Peter Bakkum就職於MongoDB企業版開發團隊。
Shaun Verch 就職於MongoDB核心服務器團隊。
Doug Garrett是MongoDB大數據分析創新大奬的獲得者;軟件架構師。
Tim Hawkins是Yahoo歐洲搜索工程部門的領導。
學習、實踐和開發MongoDB的完美手冊
—Jeet Marwah Acer Inc.
MongoDB數據庫開發和數據建模學習的必讀書籍
—Hernan Garcia Betterez Inc.
提供瞭MongoDB學習必備的詳細知識。
—Gregor Zurowski 獨立軟件開發顧問
太棒瞭,MongoDB的精華知識
—Hardy Ferentschik Red
目錄
第一部分 入門 1
第1章 全新Web數據庫 3
1.1 為互聯網而生 5
1.2 MongoDB鍵特性 5
1.2.1 文檔數據模型 5
1.2.2 ad hoc查詢 9
1.2.3 索引 9
1.2.4 復製 10
1.2.5 加速與持久化 11
1.2.6 伸縮 13
1.3 核心服務和工具 14
1.3.1 核心服務器 14
1.3.2 JavaScript shell 15
1.3.3 數據庫驅動 15
1.3.4 命令行工具 16
1.4 為什麼是MongoDB? 17
1.4.1 MongoDB與其他數據庫對比 17
1.4.2 使用場景和部署 20
1.5 提示和限製 22
1.6 MongoDB曆史 23
1.7 其他資源 25
1.8 總結 25
第2章 通過JavaScript shell操作MongoDB 27
2.1 Diving into the深入MongoDB shell 28
2.1.1 啓動shell 28
2.1.2 數據庫、集閤和文檔 28
2.1.3 插入和查詢 29
2.1.4 更新文檔 31
2.1.5 刪除數據 35
2.1.6 shell的其他特性 35
2.2 使用索引創建和查詢 36
2.2.1 創建大集閤 36
2.2.2 索引和explain( ) 38
2.3 基本管理 42
2.3.1 獲取數據庫信息 43
2.3.2 命令如何執行 44
2.4 獲取幫助 45
2.5 總結 47
第3章 編寫代碼操作MongoDB 48
3.1 通過Ruby lens連接MongoDB 49
3.1.1 安裝與連接 49
3.1.2 Ruby裏插入文檔數據 50
3.1.3 查詢與光標 51
3.1.4 更新和刪除 52
3.1.5 數據庫命令 53
3.2 驅動工作原理 54
3.3 構建簡單的應用 56
3.3.1 設置 56
3.3.2 搜集數據 57
3.3.3 查看存檔 60
3.4 總結 63
第二部分 MongoDB應用係統開發 65
第4章 麵嚮文檔的數據 67
4.1 schema設計原則 67
4.2 設計電商網站數據模型 69
4.2.1 schema基礎知識 69
4.2.2 用戶和訂單 73
4.2.3 評價 75
4.3 核心概念:數據庫、集閤、文檔 76
4.3.1 數據庫 76
4.3.2 集閤 79
4.3.3 文檔和插入 83
4.4 總結 87
第5章 構建查詢 88
5.1 電子商務查詢 88
5.1.1 産品、類彆和評論 88
5.1.2 用戶和訂單 91
5.2 MongoDB的查詢語言 92
5.2.1 查詢條件和選擇器 92
5.2.2 查詢選擇 104
5.3 總結 106
第6章 聚閤 107
6.1 聚閤框架概覽 108
6.2 電商聚閤例子 109
6.2.1 商品、類彆和評價 111
6.2.2 用戶和訂單 117
6.3 聚閤管道操作符 120
6.3.1 $project 120
6.3.2 $group 121
6.3.3 $match、$sort、$skip、$limit 123
6.3.4 $unwind 123
6.3.5 $out 124
6.4 重塑文檔 124
6.4.1 字符串函數 125
6.4.2 算術運算函數 126
6.4.3 日期函數 126
6.4.4 邏輯函數 127
6.4.5 集閤操作符 128
6.4.6 其他函數 129
6.5 理解聚閤管道性能 129
6.5.1 聚閤管道選項 130
6.5.2 聚閤框架的explain( )函數 130
6.5.3 allowDiskUse 選項 134
6.5.4 聚閤光標選項 134
6.6 其他聚閤功能 135
6.6.1 .count( )和.distinct( ) 135
6.6.2 map-reduce 136
6.7 總結 138
第7章 更新、原子操作和刪除 140
7.1 文檔更新概要 141
7.1.1 通過替換修改 141
7.1.2 通過操作符修改 142
7.1.3 比較兩個方法 142
7.1.4 決定:替換與操作符 143
7.2 電商數據模型更新 144
7.2.1 商品和目錄 144
7.2.2 評價 148
7.2.3 訂單 150
7.3 原子文檔處理 152
7.3.1 訂單狀態轉換 153
7.3.2 庫存管理 155
7.4 核心要點:MongoDB更新與刪除 160
7.4.1 更新類型與參數選項 160
7.4.2 更新操作符 161
7.4.3 findAndModify命令 169
7.4.4 刪除 169
7.4.5 並發、原子性和隔離 170
7.4.6 更新性能注意事項 171
7.5 復習更新操作符 172
7.6 總結 173
第三部分 精通MongoDB 175
第8章 索引與查詢優化 177
8.1 索引理論 177
8.1.1 精心策劃的實驗 178
8.1.2 核心索引概念 181
8.1.3 B-樹 185
8.2 索引實戰 186
8.2.1 索引類型 186
8.2.2 索引管理 189
8.3 查詢優化 194
8.3.1 找齣慢速查詢 195
8.3.2 檢查慢速查詢 199
8.3.3 查詢模式 217
8.4 總結 219
第9章 文本搜索 220
9.1 文本搜索—不僅僅是模式匹配 221
9.1.1 文本搜索與模式匹配 222
9.1.2 文本搜索與網頁搜索 223
9.1.3 MongoDB文本搜索與專業搜索引擎 225
9.2 下載曼寜圖書類彆數據 228
9.3 定義文本搜索索引 229
9.3.1 文本索引的大小 230
9.3.2 分配索引名字並為集閤裏的所有字段建立索引 231
9.4 基本的文本搜索 232
9.4.1 更復雜的搜索 233
9.4.2 文本搜索分數 235
9.4.3 根據文本搜索分數排序結果 236
9.5 聚閤框架文本搜索 237
9.6 文本搜索語言 240
9.6.1 在索引裏指定語言 241
9.6.2 在文檔裏指定語言 242
9.6.3 在搜索中指定語言 243
9.6.4 可用的語言 245
9.7 總結 245
第10章 WiredTiger與可拔插存儲 246
10.1 可拔插存儲引擎API 246
10.2 WiredTiger 248
10.2.1 切換到WiredTiger 248
10.2.2 遷移數據到WiredTiger 249
10.3 與MMAPv1對比 250
10.3.1 配置文件 251
10.3.2 插入腳本與基準測試腳本 252
10.3.3 插入測試結果 255
10.3.4 讀性能測試腳本 256
10.3.5 讀性能結果 257
10.3.6 測試結論 259
10.4 其他可拔插存儲引擎的例子 260
10.5 高級主題 261
10.5.1 可拔插引擎如何工作? 261
10.5.2 數據結構 263
10.5.3 鎖 265
10.6 總結 265
第11章 復製 267
11.1 復製概覽 267
11.1.1 為什麼復製很重要 268
11.1.2 復製的使用場景和限製 269
11.2 可復製集 270
11.2.1 安裝 270
11.2.2 可復製集群工作原理 277
11.2.3 管理 283
11.3 驅動與復製 291
11.3.1 連接與故障轉移 291
11.3.2 寫關注點 293
11.3.3 讀伸縮 294
11.3.4 標簽 296
11.4 總結 298
第12章 使用分片集群擴展係統 299
12.1 分片集群概述 300
12.1.1 什麼是分片集群 300
12.1.2 什麼時候分片? 301
12.2 理解分片集群的組件 302
12.2.1 分片:存儲應用程序數據 303
12.2.2 mongos路由:路由操作 303
12.2.3 配置服務器:存儲元數據 303
12.3 在分片集群中分散數據 304
12.3.1 分片集群中的數據分散方式 305
12.3.2 分布式數據庫分片 306
12.3.3 集閤分片 306
12.4 構建一個例子分片集群 307
12.4.1 啓動mongod和mongos服務器 308
12.4.2 配置集群 310
12.4.3 分片集閤 311
12.4.4 寫入數據到分片集群 312
12.5 分片集群查詢和建立索引 318
12.5.1 查詢路由 318
12.5.2 分片集群中建立索引 319
12.5.3 分片集群中的explain()工具 320
12.5.4 分片集群中聚閤 322
12.6 選擇分片鍵 322
12.6.1 非平衡寫入(熱點) 323
12.6.2 不可分割的數據塊(粗粒度) 324
12.6.3 糟糕的定位(分片鍵不在查詢中) 325
12.6.4 理想的分片鍵 325
12.6.5 設計摺中(email應用) 326
12.7 生産環境下分片集群 328
12.7.1 配置 328
12.7.2 部署 330
12.7.3 維護 332
12.8 總結 336
第13章 部署與管理 337
13.1 硬件與配置 337
13.1.1 集群拓撲 337
13.1.2 部署環境 339
13.1.3 配置 344
13.2 監控與診斷 346
13.2.1 日誌 346
13.2.2 診斷命令 347
13.2.3 診斷工具 347
13.2.4 監控服務 349
13.2.5 外部監控應用 349
13.3 備份 350
13.3.1 mongodump和mongorestore 350
13.3.2 基於數據文件的備份 351
13.3.3 MMS備份 352
13.4 安全 352
13.4.1 安全環境 353
13.4.2 網絡安全 353
13.4.3 驗證 356
13.4.4 可復製集驗證 359
13.4.5 分片集群驗證 360
13.4.6 企業安全特性 360
13.5 管理任務 360
13.5.1 數據導入和導齣 360
13.5.2 壓縮和修復 361
13.5.3 升級 363
13.6 性能故障排除 363
13.6.1 工作集 363
13.6.2 性能懸崖 364
13.6.3 查詢交互 365
13.6.4 尋求專業幫助 366
13.7 部署檢查列錶 366
13.8 總結 367
附錄A 安裝 368
A.1 安裝 368
A.1.1 生産部署 368
A.1.2 32位和64位 369
A.2 Linux下安裝MongoDB 369
A.2.1 使用預編譯二進製文件安裝 369
A.2.2 使用包管理器 370
A.3 Mac OS X下安裝MongoDB 370
A.3.1 預編譯二進製版本 370
A.3.2 使用包管理器 371
A.4 Windows下安裝MongoDB 372
A.5 從源碼編譯MongoDB 373
A.6 故障排除 373
A.6.1 錯誤的架構 373
A.6.2 不存在的數據目錄 374
A.6.3 缺少權限 374
A.6.4 未綁定端口 374
A.7 基本配置選項 374
A.8 安裝Ruby 376
A.8.1 Linux和Mac OS X 376
A.8.2 Windows 376
附錄B 設計模式 377
B.1 嵌入與引用 377
B.2 一對多 377
B.3 多對多 378
B.4 樹 379
B.5 工作隊列 382
B.6 動態特性 383
B.7 事務 384
B.8 定位與預計算 385
B.9 反模式 386
B.9.1 粗心索引 386
B.9.2 交錯類型 386
B.9.3 單一集閤 386
B.9.4 大型、深嵌文檔 386
B.9.5 一個用戶一個集閤 387
B.9.6 不可分片集閤 387
附錄C 二進製數據和網格文件係統 388
C.1 簡單二進製存儲 388
C.1.1 存儲縮略圖 389
C.1.2 存儲MD5 389
C.2 網格文件 390
C.2.1 Ruby中的GridFS 391
C.2.2 使用mongofiles操作GridFS 393
數據庫是信息時代的基石。與Atlas(微軟1998年發明的Ajax技術)很像,它們默默無聞地支持著我們使用的數字世界。一定要記住,我們的數字交互從評論到推特(美國的微博)搜索和排序,本質上都是與數據庫交互。
這種基本的但是隱藏的功能,讓我通常對數據庫保留一份敬意,與我們穿過懸索橋的感覺不同,通常我們會對汽車保留一份敬畏。
數據庫有許多種形式。書籍的索引以及目錄卡片都是數據庫排序的一種形式,正如為過去Perl程序員設計的特彆結構化文本文件。可能現在最著名的就是復雜的關係型數據庫,它們構成瞭當今世界軟件的基礎。這些關係型數據庫,以及它們的第三範式和SQL接口,仍然穩定地運行著。
在從事Web開發工作幾年後,我就迫 MongoDB實戰(第二版) 下載 mobi epub pdf txt 電子書 格式
MongoDB實戰(第二版) 下載 mobi pdf epub txt 電子書 格式 2024
MongoDB實戰(第二版) 下載 mobi epub pdf 電子書哇塞,京東小哥真是太貼心瞭,直接送到跟前瞭,必須好評
評分最近流行的數據庫,學習學習
評分盜版,好多錯彆字!
評分評價多於10個字,有機會奬勵京豆哦
評分還沒仔細看,有時間慢慢研究吧
評分翻譯很差,好多地方一看就是翻譯軟件翻的。
評分書全新,非常滿意,已經開始學習瞭
評分一次性買瞭好多書,書還沒有看,包裝有塑料密封,不錯
評分質量很好,紙製書看起來還是舒服,200-100元活動。能有這樣的質量。深錶欣慰
MongoDB實戰(第二版) mobi epub pdf txt 電子書 格式下載 2024