MongoDB介紹
MongoDB是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫(kù)當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫(kù)的。他支持的數(shù)據(jù)結(jié)構(gòu)非常的松散,是類(lèi)似json的bjson格式,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類(lèi)型。MongoDB最大的特點(diǎn)是他支持的查詢語(yǔ)言是非常強(qiáng)大,其語(yǔ)法有點(diǎn)類(lèi)似于面向?qū)ο蟮牟樵冋Z(yǔ)言,幾乎可以實(shí)現(xiàn)類(lèi)似關(guān)系數(shù)據(jù)庫(kù)單表查詢的絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引。它的特點(diǎn)是高性能、易部署、易使用,存儲(chǔ)數(shù)據(jù)非常方便。
MongoDB功能特性
1、面向集合存儲(chǔ),易存儲(chǔ)對(duì)象類(lèi)型的數(shù)據(jù)。
數(shù)據(jù)被分組存儲(chǔ)在數(shù)據(jù)集中,被稱(chēng)為一個(gè)集合,每個(gè)集合在數(shù)據(jù)庫(kù)中有唯一的標(biāo)識(shí)名,并且可以包含無(wú)限數(shù)目的文檔。在菲關(guān)系型數(shù)據(jù)庫(kù)的集合的概念類(lèi)似關(guān)系型數(shù)據(jù)庫(kù)里的表,不同是他不需要定義任何的模式。
2、模式自由
對(duì)于存儲(chǔ)在MongoDB數(shù)據(jù)庫(kù)中的文件,我們不需要知道它任何結(jié)構(gòu)定義。如果需要的話,你完全可以把不同結(jié)構(gòu)的文件存儲(chǔ)在同一個(gè)數(shù)據(jù)庫(kù)里。
3、支持動(dòng)態(tài)查詢
4、支持完全索引,包含內(nèi)部對(duì)象。
5、支持復(fù)制和故障恢復(fù)。
6、使用高效的二進(jìn)制數(shù)據(jù)存儲(chǔ),包括大型對(duì)象(如視頻等)
7、自動(dòng)處理碎片,以支持云計(jì)算層次的擴(kuò)展性。
8、支持RUBY、PYTHON、JAVA、C++、PHP等多種語(yǔ)言。
9、文件存儲(chǔ)格式為BSON(一種json擴(kuò)展)
BSON(Binary Serialized document Format)存儲(chǔ)形式是指:存儲(chǔ)在集合中的文檔,被存儲(chǔ)為鍵-值對(duì)的行式。鍵用于標(biāo)識(shí)一個(gè)文檔,為字符串類(lèi)型,而值則可以是各種復(fù)雜文件類(lèi)型。
10、可通過(guò)網(wǎng)絡(luò)訪問(wèn)。
mongodb服務(wù)端可以運(yùn)行在linux、Windows或OSX平臺(tái),支持32位和64位應(yīng)用,默認(rèn)端口27017.推薦運(yùn)行在64位平臺(tái),因?yàn)閙ongodb在32位模式運(yùn)行時(shí)支持的最大文件為2GB。
mongoDB數(shù)據(jù)架構(gòu)
如下圖所示
在這里對(duì)于初學(xué)者可以這樣理解,和關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行對(duì)比,這里的集合概念可以看做是一個(gè)表,文檔的概念可以看做是表中的記錄,一個(gè)Collection中可以有多條Document,并且document中可以嵌套。
下篇著重說(shuō)MongoDB的下載和安裝