如何學習MongoDB?
MongoDB日趨流行,作為一個開發/運維,如何快速上手MongoDB?或者有哪些推薦的學習MongoDB的方式?
寫在最前:請使用mongodb 3.2或以上版本進行學習,或者直接從3.4開始。另外,百度出來的中文資料,請查看15年及以后的信息,可以少走很多彎路。另外,建議使用linux系統進行學習,方便排錯。
英文比較好的小伙伴:
如果英語不好,建議先花時間學英語
1. 強烈推薦MongoDB官方的教程,MongoDB在線大學,無論開發還是DBA,都可以找到適合自己的視頻教程。因為視頻有英語字幕,聽不懂的同學,多多暫停,看一下字幕都能理解。
每節課結束都有相應的作業,可以自己用來練手。而且作業都會有類似一鍵腳本的東西,幫你配置好需要的實驗環境。完成作業后,會有不少成就感,讓自己可以有學下去的動力。另外,每次作業和最后的考試都通過會有一張結業證書。
最后,MongoDB官方的新員工也是從這里開始學習的,而且課程更新頻率也很高。
2. MongoDB的官方文檔,文檔地址,選擇自己想要看到章節,文檔的內容寫的很詳細,而且有的地方直接提供web shell的環境,讓你實際操作。
3. MongoDB工程師網站,網站地址,這里可以深入看到一些MongoDB原理的內容。此外也推薦看percona公司關于MongoDB的一些博文
看到英語就頭疼的小伙伴:
暫時沒找到較好的基礎視頻教程,IT大咖說上面有MongoDB使用案例的視頻,可以一看,不過不適合初學,需要有一定的基礎。
1. 先從看書開始,強烈推薦《MongoDB實戰 第二版》,因為這本書是3.x版本的,相對來說內容比較新。然后《MongoDB權威指南 第二版》,這本內容蠻多的,不過已經過時了。《MongoDB應用設計模式》關于MongoDB設計適用的書,非常短,值得一看。
2. MongoDB中文社區有部分官方文檔的翻譯。
3. MongoDB中文社區的公眾號及博客,云棲社區MongoDB板塊
mongodb使用場景
Mongodb是最近流行的NOsql數據庫,但一直對其用在什么場景合適而不清楚。主要知道這個數據庫是快速開發很合適。但一直歸屬到大數據板塊,想要咨詢下Mongodb適用的場景有哪些?在大數據板塊充當什么角色哪?
常見應用場景:
1. 最近單的入手就是存log,因為mongodb本身存的就是json,可以很方便的接入各種存儲日志的地方。然后可以做成相關監控報表,比如說APM,NPM等,比如說千尋位置
2. 其他的話要看題主所在的行業了,不同的行業有不同的用法,比如說信息的展示等等
3. 在網游界,MongoDB也非常流行,比如說最近大火的陰陽師,數據庫用的就是MongoDB
大數據方面,MongoDB有以下三個優勢:
1. 自帶sharding,快速得水平擴展,為存儲海量數據帶來便捷
2. 官方提供驅動,可以直接對接hadoop或者spark
客戶場景
1、用在應用服務器的日志記錄,查找起來比文本靈活,導出也很方便。也是給應用練手,從外圍系統開始使用MongoDB。
2、在一些第三方信息的獲取或者抓取,因為MongoDB的schema-less,所有格式靈活,不用為了各種格式不一樣的信息專門設計統一的格式,極大得減少開發的工作。
3、主要用來存儲一些監控數據,No schema 對開發人員來說,真的很方便,增加字段不用改表結構,而且學習成本極低。
4、使用MongoDB做了O2O快遞應用,·將送快遞騎手、快遞商家的信息(包含位置信息)存儲在 MongoDB,然后通過 MongoDB 的地理位置查詢,這樣很方便的實現了查找附近的商家、騎手等功能
特性及優勢
?
行業應用
從目前 阿里云MongoDB云數據庫 上的用戶看,MongoDB 的應用已經滲透到各個領域,比如游戲、物流、電商、內容管理、社交、物聯網、視頻直播等,以下是幾個實際的應用案例。
游戲場景:使用 MongoDB 存儲游戲用戶信息,用戶的裝備、積分等直接以內嵌文檔的形式存儲,方便查詢、更新
物流場景:使用 MongoDB 存儲訂單信息,訂單狀態在運送過程中會不斷更新,以 MongoDB 內嵌數組的形式來存儲,一次查詢就能將訂單所有的變更讀取出來。
社交場景:使用 MongoDB 存儲存儲用戶信息,以及用戶發表的朋友圈信息,通過地理位置索引實現附近的人、地點等功能
物聯網場景:使用 MongoDB 存儲所有接入的智能設備信息,以及設備匯報的日志信息,并對這些信息進行多維度的分析
視頻直播:使用 MongoDB 存儲用戶信息、禮物信息等
如果你還在為是否應該使用 MongoDB,不如來做幾個選擇題來輔助決策:
目前云數據庫 MongoDB 版:支持三節點副本集容災切換、自動備份、一鍵式的數據恢復。支持彈性擴容、提供資源監控
評論