標籤:

怎樣學 MongoDB?


入門

當然是 MongoDB 公司推出的免費在線課程 MongoDB University。這是關於 MongoDB 最好的在線教程,沒有之一,權威、系統並且更新及時。可以告訴你的是,MongoDB 新入職員工培訓都從這些在線課程開始。MongoDB University 比其它地方能找到的文章和教程要好太多。

課程分別針對開發者和 DBA 而設計,非常用心。拿 MongoDB for Developers 來說,它在 mongo shell 之外使用 python 教學,但並不要求 python 經驗。7周的課程中,從安裝開始,帶你寫出一個基於 MongoDB 資料庫的博客。每周的課程都有小作業,寫寫代碼,答答題。除了在實踐中學習,課程也涵蓋了開發者需要知道的各方面細節,全面深入。另外,還有對 Foursquare 和 Codecademy 的採訪,分享他們的使用經驗和演變過程。還可以選擇從 Kaltura 載入視頻,不用翻牆看 Youtube,是不是非常貼心?

另一個值得推薦的免費課程是 edX 上的 Introduction to MongoDB using the MEAN Stack。這個課程由 edX 與 MongoDB 合作完成,使用 Node.js,AngularJS 與 MongoDB 建設一個在線商城,幫你快速上手。

如果你的團隊都希望快速學習 MongoDB,MongoDB 提供定製化的 MongoDB University 團隊培訓 ,講師都有非常豐富的第一手經驗。這其實就是 MongoDB 新員工培訓的第二部分,所以課程質量沒得說。客戶包括像 ebay 這樣的大公司,也包括創業小公司。國內當然提供中文培訓。

進階

了解基本概念和用法之後,在項目里試試吧。英文的 MongoDB 文檔 絕對會是最好的幫手,能解答你許多疑問。主要內容都有中文翻譯 MongoDB 中文文檔。不誇張地說,80% 的疑問都可以很容易在文檔里找到答案。

這個時候,你可能會遇到問題,需要幫助。加入 MongoDB中文社區,你需要的同路人都在這裡。中文社區在最新兩年建立起來,幫助翻譯了中文文檔,也歡迎你加入翻譯的隊伍。社區里包括了國內各大公司的用戶,不時舉辦 MongoDB User Group 線下用戶組,現在在北京、上海、重慶、深圳和杭州都有不定期活動。社區邀請 MongoDB 的大牛們做技術講座,答疑解惑,也提供一個機會讓大家互相結識,拓寬社交圈子。中文在線講座 則會由 MongoDB 的官方工程師和資深架構師帶來最權威的內容。我也做過一次在線講座,討論 Replica Set 複製集的內部機制。印象最深的是大家的提問特別熱情,QA 環節時間根本不夠用。2016年8、9月的中文講座 你的第一個MongoDB應用 也特別適合入門。加入中文社區首頁上的微信公眾號吧,第一時間得到通知。

希望在社區里提問?中國區同事積極活躍在 segmentfault 問答中的 MongoDB 標籤下,那是中文社區里提問的好地方。遇到問題還可以到 stackoverflow 看看,官方的 Google Group 也有專人負責。在公司最初的四年里,CTO 每天都親自在 Google Group 上回答問題,而且基本秒回。從那時開始,重視開發者社區作為一個傳統一直到了今天。市面上有一些書也很好,比如《MongoDB權威指南》,不過書很容易過時。

實戰

首先要重磅推薦 MongoDB 自己開發的資料庫託管服務 MongoDB Atlas!依靠 Amazon AWS,部署和管理 MongoDB 不能更方便!2017年最新推出了免費款機型,512MB 磁碟空間,共享CPU和內存,特別容易上手。

過了一段時間,你使用 MongoDB 的項目已經開始開發,或者已經上線了,遇到了新問題。可能你會需要:

  1. 諮詢。MongoDB 公司提供諮詢服務 Global Consulting Services,幫你優化架構設計方案。
  2. 運維。你的項目越來越火,運維開始成了新問題。MongoDB Cloud Manager 提供監控和備份。
  3. 託管。2016 年推出的 Database as a Service 資料庫即服務 MongoDB Atlas 依靠 AWS 讓整個運維都變簡單。
  4. 可視化。MongoDB Compass 是 MongoDB 官方開發的數據可視化工具,好評不斷。
  5. 認證。包括針對開發者和 DBA 的兩種認證考試。在中國區眾多用戶中,大概只有10名左右工程師成功獲得認證,可見其中含金量。

雲計算方面,國外 AWS,Azure 和 Google Cloud 都有各種合作和整合。國內的話,阿里雲和騰訊雲都支持 MongoDB,他們的團隊也在社區里做了很多貢獻,技術實力有目共睹。

遇到問題,你的團隊可能需要更專業、更及時的幫助,MongoDB Professional 客戶支持是 MongoDB 公司最早開展的服務。我們開發工程師每幾個月就要到客戶支持部門輪崗,為了更好地了解用戶。我的感覺就是客服絕不只是關掉一個 ticket,而是門大學問。在時間限制里儘快地找到用戶問題,提出解決方案,就像急救室的醫生一樣,背後有完善的流程和深厚的技術積累。個別問題也會很快升級到開發工程師那裡,畢竟我們就坐在不遠的地方。自己寫的代碼哪裡有搞不定的道理?用戶也是普通人,會高興會生氣,也會力不能及,所以理解客戶和技術精通一樣重要。對了,他們也提供中文服務。

這篇文章畢竟不是廣告,就不提大公司用的商業版和相應的服務了。我總覺得工程師和 DBA 時間那麼值錢,不應該花在找免費資源和「在線等」好心人解答問題上,畢竟還有技術理想等著去實現呢。介紹 MongoDB 的產品和服務,就像健身建議請個教練一樣,少走些彎路。

出發!

現在就從免費在線課程 MongoDB University 和免費資料庫託管 MongoDB Atlas 開始吧,我們在 MongoDB中文社區 里等著你!


1.看書:很多同學推薦了《MongoDB權威指南》,很不錯的入門小冊子,花2、3個小時就能看完。網上有英文版下載。

2.看資料:推薦nosql上的一個mongodb專題http://blog.nosqlfan.com/html/3548.html。

3.實踐:自己先部署著玩玩,最好能在實際項目中進行運用,mongodb很適合數據結構很複雜的存儲。也需要一台內存足夠大的伺服器(8G以上,多多益善),推薦至少有百萬級別的數據,才能掌握一些優化的技巧。

4.客戶端:選擇一個自己擅長的客戶端,官網啥都有http://www.mongodb.org/display/DOCS/Drivers。常用的有php、java和python的,看自己喜歡吧。


為了幫助大家進一步了解MongoDB,雲棲社區組織翻譯了GitHub Awesome MongoDB 資源,涵蓋MongoDB中常見的庫與工具、應用列表、以及相關的文檔、教程等資源。
MongoDB資料大全-博客-雲棲社區-阿里雲


MongoDB權威指南是本好書,另外推薦上NoSQLFan網站。http://blog.nosqlfan.com/


官方文檔看一看。

編程實例練一練。

源碼看一看。

一般互聯網公司多用mysql,redis,mongodb做存儲層,hadoop,spark做大數據分析。

mysql適合結構化數據,類似excel表格一樣定義嚴格的數據,用於數據量中,速度一般支持事務處理場合。

redis適合緩存內存對象,如緩存隊列,用於數據量小,速度快不支持事務處理高並發場合。

mongodb,適合半結構化數據,如文本信息,用於數據量大,速度較快不支持事務處理場合。

hadoop是個生態系統,上面有大數據分析很多組件,適合事後大數據分析任務。

spark類似hadoop,偏向於內存計算,流計算,適合實時半實時大數據分析任務。

移動互聯網及物聯網讓數據呈指數增長,NoSql大數據新起後,數據存儲領域發展很快,似乎方向都是向大數據,內存計算,分散式框架,平台化發展,出現不少新的方法,如Apache Ignite適合於內存計算就集成了好多功能模快,Apache Storm、Spark、Flink也各有特點。

一般普通應用TB,GB級別達不到PB級別的數據存儲,用mongodb,mysql就夠了,hadoop,spark這類是航母一般多是大規模應用場景,多用於事後分析統計用,如電商的推薦系統分析系統。

聰明的戰士總是選擇適合的武器。具體什麼場合用什麼數據存儲策略或混合使用,需要分析業務特點及未來業務發展需求來決定。


看文檔,看資料,邊看邊操作,最後找個小項目自己嘗試。

順便分享些不錯的入門資料

  1. 極簡實踐入門,基本上1到2個小時能看完,有個初步了解。

  2. Mongodb 教程,這個是極客學院出的。


我對一門技術的學習一般都是從一本書、一個人、一份源碼開始的;對於mongo,我覺得從其他人說的《mongodb權威指南》開始就夠了;人的話,我身邊真沒有,網上也少有,所以我一般去stackoverflow上問;源碼在這裡不是指mongo本身的源碼,而是找一個mongodb集群部署的教程一步步實現,在其中你就慢慢理解各個節點、配置的職責和作用了。之後還推薦一本《深入學習mongodb》帶你更進一步,然後就在工作中體會吧,隨著數據量的增加和需求的變化,你一定會遇到問題,一般查官方文檔,同時結合搜索到的其他資料,你會慢慢理解mongo的一些原理(如存儲機制),時間久了,自然就通了。


前幾天用邊自學,各個技術社區浪費了不少時間,線上庫還埋了幾個坑;然後買了本《MongoDB權威指南》,幾個小時翻了一遍收益良多,建立知識脈絡最實在的辦法還是看本好書。


推薦一個mongodb的教程吧: http://outofmemory.cn/mongodb/tutorial/

教程只能幫你入門,真正的坑兒,在教程里發現不了,我現在就在學mongo,我試驗了一億的數據,發現和mysql性能差別不大,會更耗內存,在努力找性能優化的方式


MongoDB 資料庫入門與進階

優酷 、B 站都可以看

此 MongoDB 資料庫入門與進階視頻課程主要講解了 MongoDB 的安裝配置、增刪改查等基本操作、各種條件操作符、以及索引聚合分片等相關知識

MongoDB 資料庫入門與進階視頻課程 - DevOpenClub


看官網吧,書更新有點慢。mongo都3了,還有書說庫級鎖


我不太推薦樓上各位的那本書,我有兩版,現在還有一本就放在我車上,每次有同事看見就嚇一跳。我覺得看那本書完全不如直接把官方文檔看一遍。


MongoDB University

https://university.mongodb.com/


推薦兩個框架 bugumongo 和 morphia

自己隨便用用沒問題 等碰到問題了 再去解決


分享MongoDB的參考卡。這覆蓋常用功能如queries、indexing、replication、sharding 和 SQL/MongoDB語句。https://count.ly/wp-content/uploads/2016/09/ReferenceCards15-PDF.pdf


有一些qq群不錯的,http://www.hubwiz.com,我們這裡也很不錯。


視頻教程 http://www.sucaihuo.com/video/152.html


MongoDB教程?入門教程 《MongoDB教程?》


前段時間翻完了mongoDB的官方文檔,覺得寫的挺不錯,自學難度適中,推薦看看


我覺得先看「MongoDB權威指南」這本書然後找一個項目自己練習。


推薦閱讀:

MongoDB 或者 redis 可以替代 memcached 嗎?
爬蟲爬下來的數據(100G級別,2000W以上數據量)用mysql還是mongodb存儲好?

TAG:資料庫 | MongoDB |