MongoDB :第一章:了解一下

MongoDB簡介
什么是MongoDB

MongoDB 是一個(gè)跨平臺的,面向文檔的數(shù)據(jù)庫,是當(dāng)前 NoSQL 數(shù)據(jù)庫產(chǎn)品中最熱門的一種。它介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的產(chǎn)品。它支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似JSON  的 BSON 格式,因此可以存儲比較復(fù)雜的數(shù)據(jù)類型。

MongoDB 是一個(gè)基于分布式文件存儲的數(shù)據(jù)庫。由 C++ 語言編寫。旨在為 WEB 應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案。

MongoDB 是一個(gè)介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。

MongoDB 的官方網(wǎng)站地址是:http://www.mongodb.org/

 










MongoDB特點(diǎn)

MongoDB 最大的特點(diǎn)是他支持的查詢語言非常強(qiáng)大,其語法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。它是一個(gè)面向集合的,模式自由的文檔型數(shù)據(jù)庫。

具體特點(diǎn)總結(jié)如下:

(1)面向集合存儲,易于存儲對象類型的數(shù)據(jù)

(2)模式自由

(3)支持動態(tài)查詢

(4)支持完全索引,包含內(nèi)部對象

(5)支持復(fù)制和故障恢復(fù)

(6)使用高效的二進(jìn)制數(shù)據(jù)存儲,包括大型對象(如視頻等)

(7)自動處理碎片,以支持云計(jì)算層次的擴(kuò)展性

(8)支持 Python,PHP,Ruby,Java,C,C#,Javascript,Perl 及 C++語言的驅(qū)動程序,社區(qū)中也提供了對 Erlang 及.NET 等平臺的驅(qū)動程序

(9) 文件存儲格式為 BSON(一種 JSON 的擴(kuò)展)
MongoDB體系結(jié)構(gòu)

MongoDB 的邏輯結(jié)構(gòu)是一種層次結(jié)構(gòu)。主要由:

文檔(document)、集合(collection)、數(shù)據(jù)庫(database)這三部分組成的。邏輯結(jié)構(gòu)是面向用戶

的,用戶使用 MongoDB 開發(fā)應(yīng)用程序使用的就是邏輯結(jié)構(gòu)。

(1)MongoDB 的文檔(document),相當(dāng)于關(guān)系數(shù)據(jù)庫中的一行記錄。

(2)多個(gè)文檔組成一個(gè)集合(collection),相當(dāng)于關(guān)系數(shù)據(jù)庫的表。

(3)多個(gè)集合(collection),邏輯上組織在一起,就是數(shù)據(jù)庫(database)。

(4)一個(gè) MongoDB 實(shí)例支持多個(gè)數(shù)據(jù)庫(database)。

文檔(document)、集合(collection)、數(shù)據(jù)庫(database)的層次結(jié)構(gòu)如下圖:

 



















下表是MongoDB與MySQL數(shù)據(jù)庫邏輯結(jié)構(gòu)概念的對比