mongoDB的瞭解

來源:互聯網
上載者:User

標籤:

一、什麼是mongoDB?

1、MongoDB 是由C++語言編寫的,是一個基於分布式檔案儲存體的開來源資料庫系統。在高負載的情況下,添加更多的節點,可以保證伺服器效能。

2、MongoDB 旨在為WEB應用提供可擴充的高效能資料儲存解決方案。

3、MongoDB 將資料存放區為一個文檔,資料結構由索引值(key=>value)對組成。MongoDB 文檔類似於 JSON 對象。欄位值可以包含其他文檔,數組及文檔數組。

二、曆史

1、2007年10月,MongoDB由10gen團隊所發展。2009年2月首度推出。

2、2012年05月23日,MongoDB2.1 開發分支發布了! 該版本採用全新架構,包含諸多增強。

3、2012年06月06日,MongoDB 2.0.6 發布,分布式文檔資料庫。

4、2013年04月23日,MongoDB 2.4.3 發布,此版本包括了一些效能最佳化,功能增強以及bug修複。

5、2013年08月20日,MongoDB 2.4.6 發布,是目前最新的穩定版。

三、主要特點

1、MongoDB的提供了一個面向文檔儲存,基本的思路就是將原來“行”的概念換成更加靈活的“文檔”模型。一條記錄可以表示非常複雜的層次關係。

2、Mongo支援豐富的查詢運算式。查詢指令使用JSON形式的標記,可輕易查詢文檔中內嵌的對象及數組。

3、非常容易擴充。面對資料量的不斷上漲,通常有兩種方案,一種是購買更好的硬體,別一種是分散資料,進行分布式的擴充,前者有著非常大的缺點,因為硬體通常是有物理極限的,當達到極限以後,處理能力就不可能再進行擴充了。所以建議的方式是使用叢集進行擴充。MongoDB所採用的面向文檔的資料模型使其可以自動在多台伺服器之間分割資料。它還可以平衡叢集的資料和負載,自動重排文檔。

4、MongoDB支援各種程式設計語言:RUBY,PYTHON,JAVA,C++,PHP,C#等多種語言。

5、豐富的功能。包括索引、儲存JavaScript、彙總、固定集合、檔案儲存體等。

6、方便的管理,除了啟動資料庫伺服器之外,幾乎沒有什麼必要的管理操作。管理叢集只需要知道有新增加的節點,就會自動整合和配置新節點。

四、安裝

brew install mongodb

五、資料庫

1、一個mongodb中可以建立多個資料庫。

2、MongoDB的單個執行個體可以容納多個獨立的資料庫,每一個都有自己的集合和許可權,不同的資料庫也放置在不同的檔案中。

3、資料庫也通過名字來標識。資料庫名可以是滿足以下條件的任意UTF-8字串。

1.不能是Null 字元串(””)。

2.不得含有’ ‘(空格)、.、$、/、\和\0 (空宇符)。

3.應全部小寫。

4.最多64位元組。

4、有一些資料庫名是保留的,可以直接存取這些有特殊作用的資料庫。

1.admin: 從許可權的角度來看,這是”root”資料庫。要是將一個使用者添加到這個資料庫,這個使用者自動繼承所有資料庫的許可權。一些特定的伺服器端命令也只能從這個資料庫運行,比如列出所有的資料庫或者關閉伺服器。

2.local: 這個資料永遠不會被複製,可以用來儲存限於本地單台伺服器的任意集合 。

3.config: 當Mongo用於分區設定時,config資料庫在內部使用,用於儲存分區的相關資訊。

六、文檔

文檔是mongodb中的最核心的概念,是其核心單元,我們可以將文檔類比成關係型資料庫中的每一行資料。

多個鍵及其關聯的值有序的放置在一起就是文檔。MongoDB使用了BSON這種結構來儲存資料和網路資料交換。

BSON資料可以理解為在JSON的基礎上添加了一些json中沒有的資料類型。

如果我們會JSON,那麼BSON我們就已經掌握了一半了,至於新添加的資料類型後面我會介紹。

文檔例子如下:

{name:”張三”,age:20,hobby:[“看書”,”旅遊”,”唱歌”]}

需要注意的是:

1. 文檔中的鍵/值對是有序的。

2. 文檔中的值不僅可以是在雙引號裡面的字串,還可以是其他幾種資料類型(甚至可以是整個嵌人的文檔)。

3. MongoDB區分類型和大小寫。

4. MongoDB的文檔不能有重複的鍵。

5. 文檔的鍵是字串。除了少數例外情況,鍵可以使用任意UTF-8字元。

文檔鍵命名規範:

1 鍵不能含有\0 (Null 字元)。這個字元用來表示鍵的結尾。

2 .和$有特別的意義,只有在特定環境下才能使用。

3 以底線”_”開頭的鍵是保留的(不是嚴格要求的)。

七、集合

集合就是一組文檔的組合。如果將文檔類比成資料庫中的行,那麼集合就可以類比成資料庫的表。

在mongodb中的集合是無模式的,也就是說集合中儲存的文檔的結構可以是不同的,比如下面的兩個文檔可以同時存入到一個集合中:

{“name”:”tangcaiye”}

{“Name”:”tangcaiye”,”sex”:”nan”}

註:當第一個文檔插入時,集合就會被建立。

合法的集合名

1. 集合名不能是Null 字元串””。

2. 集合名不能含有\0字元(Null 字元),這個字元表示集合名的結尾。

3. 集合名不能以”system.”開頭,這是為系統集合保留的首碼。

4. 使用者建立的集合名字不能含有保留字元。有些驅動程式的確支援在集合名裡麵包含,這是因為某些系統產生的集合中包含該字元。除非你要訪問這種系統建立的集合,否則千萬不要在名字裡出現$。

mongoDB的瞭解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.