數據庫技術叢書 : MongoDB 遊記之輕鬆入門到進階

數據庫技術叢書 : MongoDB 遊記之輕鬆入門到進階

作者: 張澤泉
出版社: 清華大學
出版在: 2017-08-17
ISBN-13: 9787302478607
ISBN-10: 7302478600
裝訂格式: 平裝
總頁數: 290 頁





內容描述


MongoDB作為受歡迎的文檔存儲類型的NoSQL數據庫,越來越多的公司在使用它。本書以符合初學者的思維方式,系統全面、層層遞進地介紹了MongoDB數據庫,通過本書的學習,讀者能夠勝任實際工作環境中MongoDB的相關開發管理工作。
本書共分四個部分23章,第一部分講解了MongoDB的相關概念和原理以及其內部工作機制,可以讓讀者對MongoDB有一個全面的認識。第二部分和第三部分從應用角度,結合實例講解了MongoDB的安裝、配置、部署、開發、集群部署和管理等在實際工作中會用到的技能。第四部分是經驗部分,這部分是作者多年使用MongoDB後總結的技巧,對讀者在工作中使用MongoDB有極大的參考價值。
本書適合MongoDB的初學者,希望深入瞭解MongoDB安裝部署、開發優化的軟件工程師,希望深入瞭解MongoDB管理、集群擴展的數據運維管理員,以及任何對MongoDB相關技術感興趣的讀者。

海報:


目錄大綱


第一部分基礎與架構理論篇

第1章初識MongoDB 3 
1.1 MongoDB簡介3 
1.1.1 MongoDB是什麼3 
1.1.2 MongoDB的歷史3 
1.1.3 MongoDB的發展情況4 
1.1.4哪些公司在用MongoDB 5 
1.2 MongoDB的特點5 
1.3 MongoDB應用場景6 
1.3.1 MongoDB適用於以下場景6 
1.3.2 MongoDB不適合的場景7 
第2章MongoDB的結構8 
2.1數據庫8 
2.1.1數據庫的層次8 
2.1.2數據的命名8 
2.1.3自帶數據庫9 
2.2普通集合9 
2.2.1集合是什麼9 
2.2.2集合的特點—無模式9 
2.2.3集合命名9 
2.2.4子集合10 
2.3固定集合(Capped) 10 
2.3. 1 Capped簡介10 
2.3.2 Capped屬性特點10 
2.3.3 Capped應用場景10 
2.4文檔11 
2.4.1文檔簡介11 
2.4.2文檔的特點11
2.4.3文檔的鍵名命名規則11 
2.5數據類型11 
2.5.1基本數據類型11 
2.5.2數字類型說明12 
2.5.3日期類型說明14 
2.5.4數組類型說明16 
2.5.5內嵌文檔類型說明16 
2.5.6 _id鍵和ObjectId對像說明17 
2.5.7二進制類型說明——小文件存儲19 
2.6索引簡介19 
2.6.1什麼是索引19 
2.6.2索引的作用20 
2.6.3普通索引20 
2.6.4索引20 
2.6.5地理空間索引21 
第3章MongoDB的大文件存儲規範GridFs 22 
3.1 GridFS簡介22 
3.2 GridFS原理23 
3.3 GridFS應用場景24 
3.4 GridFS的局限性24 
第4章MongoDB的分佈式運算模型MapReduce 25 
4.1 MapReduce簡介25 
4.2 MapReduce原理26 
4.3 MapReduce應用場景28 
第5章MongoDB存儲原理29 
5.1存取工作流程29 
5.2存儲引擎30 
5.2.1 MMAP引擎31
5.2.2 MMAPv1引擎31 
5.2.3 WiredTiger引擎32 
5.2.4 In-Memory 33 
5.2.5引擎的選擇34 
5.2.6未來的引擎34 
第6章了解MongoDB複製集35 
6.1複製集簡介35 
6.1.1主從復制和副本集35 
6.1.2副本集的特點38 
6.2副本集工作原理38 
6.2.1 oplog(操作日誌) 38 
6.2.2數據同步39 
6.2.3複製狀態和本地數據庫39 
6.2.4阻塞複製40 
6.2.5心跳機制40 
6.2.6選舉機制41 
6.2.7數據回滾42 
第7章了解MongoDB分片43 
7.1分片的簡介43 
7.2分片的工作原理44 
7.2.1數據分流44 
7.2.2 chunkSize和塊的拆分47 
7.2.3平衡器和塊的遷移47 
7.3分片的應用場景48 
第二部分管理與開發入門篇

第8章安裝MongoDB 51 
8.1版本和平台的選擇51 
8.1.1版本的選擇51 
8.1.2平台的選擇52 
8.1.3 32位和64位52
8.2 Windows系統安裝MongoDB 53 
8.2.1查看安裝環境53 
8.2.2安裝步驟53 
8.2.3目錄文件了解55 
8.3 Linux系統安裝MongoDB 56 
8.3.1虛擬機簡介56 
8.3.2虛擬機安裝以及安裝Linux系統58 
8.3.3安裝MongoDB 67 
8.4 Mac OSX系統安裝MongoDB 73 
8.4.1查看安裝環境73 
8.4.2官網安裝包安裝73 
8.4.3 Mac軟件倉庫安裝74 
第9章啟動和停止MongoDB 75 
9.1命令行方式啟動和參數75 
9.1.1 Windows系統命令行啟動MongoDB 75 
9.1.2 Linux系統命令行啟動MongoDB 76 
9.1.3 Mac OS系統命令行啟動MongoDB 79 
9.2啟動參數80 
9.3配置文件方式啟動82 
9.4啟動MongoDB客戶端84 
9.5關閉MongoDB 84 
9.5.1 Windows系統設置MongoDB關閉84 
9.5.2 Linux系統設置MongoDB關閉86 
9.5.3 Mac OS系統設置MongoDB關閉87 
9.6設置MongoDB開機啟動88
9.6.1 Windows系統設置MongoDB開機啟動88 
9.6.2 Linux系統設置MongoDB開機啟動89 
9.6.3 Mac OS系統設置MongoDB開機啟動93 
9.7修復未正常關閉的MongoDB 96
 
第10章基本命令97 
10.1數據庫常用命令97 
10.2集合99 
10.3文檔101 
10.4索引104 
10.5基本查詢106 
10.5.1 find簡介106 
10.5.2游標107 
10.6條件查詢108 
10.6.1與操作108 
10.6.2或操作$or 108 
10.6.3大於$gt 108 
10.6 .4小於$lt 108 
10.6.5大於等於$gte 108 
10.6.6小於等於$lte 108 
10.6.7類型查詢$type 108 
10.6.8是否存在$exists 109 
10.6.9取模$mod 109 
10.6.10不等於$ne 109 
10.6.11包含$in 110 
10.6.12不包含$nin 110 
10.6.13 $not:反匹配110 
10.7特定類型查詢110 
10.7.1 null 110
10.7.2正則查詢(模糊查詢) 110 
10.7.3嵌套文檔112 
10.7.4數組112 
10.8高級查詢$where 115 
10.8.1 JavaScript語言簡介115 
10.8.2 JavaScript編程簡單例子115 
10.8.3 JavaScript與$where結合使用115 
10.9查詢輔助116 
10.9.1條數限制limit 116 
10.9.2起始位置skip 116 
10.9.3排序sort 116 
10.10修改器116 
10.10.1 $set 116 
10.10.2 $unset 117 
10.10.3 $inc 117 
10.10.4 $push 117 
10.10.5 $pushAll 117 
10.10.6 $pull 117 
10.10.7 $addToSet 118 
10.10.8 $pop 118 
10.10.9 $rename 118 
10.10.10 $bit 118 
10.11原生聚合運算119 
10.11. 1數量查詢count 119 
10.11.2不同值distinct 119 
10.11.3分組group 120
10.11.4靈活統計MapReduce 123 
10.12聚合管道127 
10.12.1 aggregate用法127 
10.12.2管道操作器128 
10.12.3管道表達式139 
10.12.4複合使用示例141 
第11章GUI工具:數據庫外部管理工具144 
11.1 MongoDB的GUI工具簡介144 
11.2 Robomongo基本操作144 
11.2.1連接MongoDB 145 
11.2.2創建刪除數據庫145 
11.2.3插入文檔145 
11.2.4查詢文檔146 
11.2.5更新文檔146 
11.2.6創建索引147 
11.2. 7執行JavaScript 148 
第12章監控149 
12.1原生管理接口監控149 
12.2使用serverStatus在Shell監控150 
12.3使用mongostat在Shell監控151 
12.4使用第三方插件監控152 
第13章安全和訪問控制153 
13.1綁定監聽ip 153 
13.2設置監聽端口154 
13.3用戶認證154 
13.3.1啟用認證154 
13.3.2添加用戶155
13.3.3用戶權限控制155 
13.3.4用戶登錄157 
13.3.5修改密碼157 
13.3.6刪除用戶157 
第14章數據管理158 
14.1數據備份mongodump 158 
14.2數據恢復mongorestore 159 
14.3數據導出mongoexport 159 
14.3.1導出JSON格式159 
14.3.2導出CSV格式159 
14.4數據導入mongoimport 160 
14.4.1 JSON格式導入160 
14.4.2 CSV格式導入160 
第15章MongoDB驅動161 
15.1 MongoDB驅動支持的開發語言161 
15.2驅動使用流程163
 
第16章Java操作MongoDB 165 
16.1安裝JDK 165 
16.2 Eclipse安裝166 
16.3加載驅動167 
16.4查閱Java操作語法167 
16.5測試操作168 
16.5.1連接數據庫168 
16.5.2插入數據169 
16.5.3查詢數據170 
16.5.4更新數據170 
16.5.5刪除數據171 
16.5.6聚合方法執行171
16.5.7操作GridFS 172 
16.5.8運行示例173 
第三部分管理與開發進階篇

第17章副本集部署177 
17.1總體思路177 
17.2 MongoDB環境準備178 
17.3創建目錄181 
17.4創建Key 182 
17.5初始化副本集183 
17.6數據同步測試190 
17.7故障切換測試192 
17.8 Java程序連接MongoDB副本集測試194 
17.9主從復制部署196 
第18章分片部署198 
18.1總體思路198 
18.2創建3個Shard Server 201 
18.2.1創建目錄201 
18.2 .2以分片Shard Server模式啟動201 
18.3啟動Config Server 202 
18.3.1創建目錄202 
18.3.2以分片Config Server模式啟動202 
18.4啟動Route Process 203 
18.5配置sharding 204 
18.6對數據庫mytest啟用分片205 
18.7集合啟用分片206 
18.8分片集群插入數據測試208 
18.9分片的管理209
18.9.1移除Shard Server,回收數據209 
18.9.2新增Shard Server 211 
第19章分片+副本集部署212 
19.1總體思路212 
19.2創建3個複制集215 
19.2.1創建目錄215 
19.2.2以複製集模式啟動215 
19.2.3初始化複製集216 
19.3創建分片需要的Config Server與Route Process 217 
19.3.1創建目錄217 
19.3.2啟動Config Server、Route Process 218 
19.4配置分片219 
第20章springMVC+ maven+MongoDB框架搭建221 
20.1 SpringMVC和Maven簡介221 
20.2 Eclipse安裝Maven插件221 
20.3新建Maven類型的Web項目222 
20.4搭建SpringMVC+MongoDB框架224 
20.4.1 jar包引入224 
20.4.2新建SpringMVC配置文件228 
20.4. 3新建MongoDB配置文件230 
20.4.4配置web.xml 231 
20.4.5創建index.jsp和IndexController 232 
20.4.6啟動Web項目233
第21章註冊登錄功能的實現235 
21.1 UI框架Bootstrap 235 
21.1.1簡介235 
21.1.2應用Bootstrap 235 
21.2新建用戶實體236 
21.3註冊功能編寫237 
21.3.1註冊頁面代碼237 
21.3.2註冊後端代碼239 
21.4登錄功能編寫241 
21.4.1登錄頁面代碼241 
21.4.2登錄後端代碼243 
21.5運行測試244 
21.6 Sping Data MongoDB操作246 
21.6.1插入數據247 
21.6.2查詢數據247 
21.6.3更新數據249 
21.6. 4刪除數據250 
21.6.5聚合方法執行250 
21.6.6操作GridFS 251 
21.6.7運行示例253 
第四部分管理與開發經驗篇

第22章MongoDB開發的經驗257 
22.1盡量選取穩定新版本64位的MongoDB 257 
22.2數據結構的設計257 
22.3查詢的技巧259 
22.4安全寫入數據262 
22.5索引設置的技巧264 
22.6不要用GridFS處理小的二進製文件268
22.7優化器profiler 269 
第23章MongoDB管理的經驗271 
23.1 MongoDB安全管理271 
23.2不要將MongoDB與其他服務部署到同一台機器上273 
23.3單機開啟日誌Journal,多機器使用副本集274 
23.4生產環境不要信任repair恢復的數據275 
23.5副本集管理276 
23.6副本集回滾丟失的數據278 
23.7分片的管理279 
23.8 MongoDB鎖280 
附錄A MongoDB地理位置距離單位285 
附錄B相關網址287


作者介紹


作者:張澤泉
張澤泉,畢業於四川理工學院,數據工程師、中級職稱軟件設計師、CSDN博客專家。致力於數據採集、數據分析、數據分佈式運算架構等技術的應用與研究。多年一線MongoDB數據庫存儲、部署、開發經驗,以及將其應用於房地產數據分析、金融數據分析、基因數據分析等領域行業經驗。




相關書籍

Oracle高性能自動化運維 (High-performance and Automated Operation for Oracle)

作者 冷菠

2017-08-17

Oracle 實戰寶典:故障排除與效能提升 (上), 2/e (Troubleshooting Oracle Performance, 2/e)

作者 Christian Antognini 王作佳 劉迪 譯 博碩文化 審校

2017-08-17

SQL 達人的工作現場攻略筆記

作者 ミック 許郁文

2017-08-17