iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 1
0
Big Data

30天之你好MongoDB系列 第 1

30-1之MongoDB基礎

Hello ~ 大家好 ~ 接下來的30天的文章,小的我將要說明如何從0 → 1開始來學習MongoDB,咱們這30天的文章結構大至上會如下。

  • 首先,先來個十篇的新手村之旅,大致上是說明MongoDB的基本操作CRUD
  • 再來開始進階一點,當我們上面十篇會基本上的使用MongoDB後,我們接下來就是要學習『如何用的好』,這時我們大概會花個六、七篇左右來說明說明。
  • 然後我們這時要來『驗證』你上面的東西有沒有學會,我們大概會用個三篇來模擬個應用。記好『驗證』自已有沒有學會,是學習過程很重要的步驟,請別老是覺得看過懂了,就算學會,這種道理就像是你腦袋想的和寫出來的程式不見得會一樣,請記得寫測試驗證。
  • 接下來就是進行分散式的章節,大概來個六~七篇。
  • 最後就是一樣驗證你上面的東西有沒有學會。

上面大概就是這30天的簡略流程,那麼就開始吧。

由於是第一天,所以基本上就是要文言文一下,說明一下mongodb是啥。

  • 什麼是MongoDB
  • MongoDB的優缺與缺點
  • MongoDB的組成DocumentCollection

~ 什麼是MongoDB ~


MongoDB一種強大,靈活、且易於擴展的文件導向式(document-oriented)資料庫,與傳統的關聯式導向資料庫相比,它不再有row的概念,取而代之的是document的概念,如下圖的fu。

~ MongoDB的優缺與缺點 ~


優點

  • Schema-less : MongoDB擁有非常彈性的Schema,這對RDBMS來說非常的難以高效能的方法來實現。
  • 易於擴展 : MongoDB的設計採用橫向擴展,它的document的數據模型使寫能很容易在多台伺服器之間進行數據分割。
  • 優透的性能 : MongoDB能預分配,以利用額外的空間換取穩定,同時盡可能把多的內存用作cache,試圖為每次查詢自動選擇正確的索引。

缺點

  • 不支援事務操作 : 所以通常不適合應用在銀行或會計這種系統上,因為不包證一致性。
  • 占用比較多空間 : 主要是有兩個原因,首先是它會預分配空間,為了提高效能,而第二個原因是欄位所占用的空間。

~ MongoDB的組成DocumentCollection ~


Document

Documentmongodb的核心,它就是Key對應個Value組合,例如下列範例。

{
	name : "mark".
	age : 100 , 
	title : 'Mark BIG BIG'
}

document中的值可以是多種不同的類型,並且Key有幾個規定,首先它是區分大小寫,例如下面的範例這兩種是不同的,mongodb會存成兩份document

{ name : "mark" }
{ Name : "mark" }

而另一個規定是Key不能相同的,例如下面的範例是非法的。

{ age : "100" , age : "1000" }

Collection

Collection就是一組Document,如果把它用來與關聯式資料庫比較,他就是Table裡面存放了很多Row

Collection是動態的,這代表這一個collection裡的document可以是各種類型,例如下面這幾種文檔都可以存放在同一個collection裡,不像關聯式規定的好好。

{ id :1, name : "mark" }
{ age : 100 }

整體而言他們兩個關係長這樣。

~ 結語 ~


第一天,沒啥好結語的fu,只能說+u,給所有參賽者。

~ 參考資料 ~



下一篇
30-2之使用Docker來建構MongoDB環境
系列文
30天之你好MongoDB30

尚未有邦友留言

立即登入留言