第一次參加鐵人賽,這次決定以自己學習 MongoDB 的學習筆記來挑戰,這系列主要會介紹 MongoDB 的基本及進階操作、索引、聚合及資料庫管理等知識,希望對 MongoDB 有興趣的朋友可以有所收穫,如果有任何建議與疑問,也歡迎留言或是來信討論!
第一天先來介紹一下什麼是 MongoDB,下一篇則會介紹 MongoDB 的安裝及環境設置。
MongoDB 的定義:
MongoDB 是一個可擴展、高效能、開源、跨平台、文件導向(document-oreiented)的 NoSQL 資料庫。
MongoDB 的特性:
-
速度快:查詢、插入等操作的速度很快
-
基於文件的查詢:類似 JSON 的資料結構(BSON,在往後的章節會介紹)
-
對索引(index)的全面支持:高效的資料查詢
-
Map/Reduce 的聚合(aggregation)功能:更多可能性,且提供方便的資料分組、處理與二次加工等操作
-
副本(Replication)& 容錯移轉(failover):提供資料的高可用性(HA, High Availability)
-
自動分片(auto sharding):提高資料插入的效率
為什麼要使用 MongoDB?
- SQL 資料庫無法滿足多種類資料的儲存
- MongoDB 儲存文件(document)或物件(object)
- 物件導向(object-oriented)的程式語言逐漸普及:Python, Ruby, Java, etc.
- 許多程式語言需要永久儲存物件(object)
- 嵌入式文件(embedded document)及佇列(array)能減少 join 的操作需求
-
DB-Engines Ranking:全部資料庫排名第五名;NoSQL 資料庫排名第一
- 很多公司在使用:Twitter, Google, Facebook, Adobe, Cisco, etc.
第一天先簡單介紹 MongoDB,下一篇將會介紹如何安裝 MongoDB 以及安裝後的一些環境設置,對 MongoDB 有興趣的朋友歡迎追蹤!