MongoDB實戰(第二版) MongoDB实战(第二版)

徐雷

  • 出版商: 華中科技大學出版社
  • 出版日期: 2017-03-01
  • 定價: $480
  • 售價: $480
  • 貴賓價: 9.5$456
  • 語言: 簡體中文
  • 頁數: 410
  • 裝訂: 平裝
  • ISBN: 7568025799
  • ISBN-13: 9787568025799
  • 相關分類: NoSQL
  • 相關原文書: MongoDB in Action (Paperback)

立即出貨

買這商品的人也買了...

商品描述

本書分三部分通過大量的實例代碼介紹了MongoDB數據庫底層的實現以及大型因特網Web項目數據庫設計原則。第一部分對MongoDB進行了整體介紹,並介紹了實際的開發例子,另外還介紹了JavaScript shell和Ruby驅動。第二部分通過逐步實現一個電商數據模型和實現必要的CRUD操作來詳細介紹了MongoDB的文檔數據模型、查詢語言和CRUD(新增、讀取、更新和刪除)操作。本書的zui後部分從數據庫專家的角度來看待MongoDB,介紹了數據庫的性能、部署、容錯和伸縮性等所有的知識。
本書適合想深入學習MongoDB的開發人員,主要關註MongoDB數據庫。

作者簡介

Kyle Banker,在MongoDB開發團隊之後,就職於一家創業公司。
Peter Bakkum,就職於MongoDB企業版開發團隊。
Shaun Verch,就職於MongoDB核心服務器團隊。Doug Garrett,是MongoDB大數據分析創新大獎的獲得者;軟件架構師。
Tim Hawkins,是Yahoo歐洲搜索工程部門的領導。

目錄大綱

第1部分入門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