摸索了幾天,大體也初步算入了mongodb的門,仔細(xì)一想,mongodb和傳統(tǒng)關(guān)系型數(shù)據(jù)庫差別很大了。
傳統(tǒng)關(guān)系型數(shù)據(jù)庫中,一個數(shù)據(jù)庫有一個或者多個表(Table),表中的數(shù)據(jù)是稱之為記錄,一行一行的,每行數(shù)據(jù)分不同的字段。
舉一個容易理解的例子。一個人有姓名,性別,年齡,以及很多張銀行卡;
如果使用關(guān)系型數(shù)據(jù)庫,我們可能會是使用兩張或者更多表來做記錄,一張用戶表來存用戶的基本信息,另一張表通過用戶id,和銀行卡id,通過多條記錄來存此人的多張銀行卡對應(yīng)關(guān)系;
那如果是在mongodb中,那就對應(yīng)一個文件了
舉個例子就是這樣的數(shù)據(jù)了
{
Name:'小明',Sex:'男',Age:'25',
BankCards:[ ‘123445678','12233333','5555555']
}
所以到目前的mongodb中,它是沒有關(guān)系這個概念的;
此圖反應(yīng)了mongdb和傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(mysql,oracle)之間的對比;
![](http://img.jbzj.com/file_images/article/201901/2019122140447856.png?201902214459)
應(yīng)該說是,mongodb存的是一個完整的對象了,這個對象數(shù)據(jù)是已文檔的形式存儲的。至于它有什么優(yōu)點,網(wǎng)上一大片說它優(yōu)點,這里抓網(wǎng)絡(luò)內(nèi)容貼上:
架構(gòu):MongoDB是文檔型數(shù)據(jù)庫,其中一個集合保存不同的不同的文件。字段的數(shù)量,內(nèi)容和該文件的大小可以是不同于從一個文件復(fù)制到另一個。
一個單一的對象是結(jié)構(gòu)清晰
沒有復(fù)雜的連接
深查詢能力。 MongoDB支持動態(tài)查詢使用基于文檔的查詢語言,如SQL幾乎一樣強(qiáng)大的文件
調(diào)優(yōu)
易于規(guī)模化:MongoDB是易于擴(kuò)展
不需要數(shù)據(jù)庫對象的應(yīng)用程序?qū)ο筠D(zhuǎn)換/映射
使用內(nèi)部存儲器存儲(窗口)工作組,從而實現(xiàn)更快的數(shù)據(jù)存取
不過缺點有很多,首先:不支持事物,而不會支持這種什么inner join ,left join等這樣的關(guān)系連接,(因為不是關(guān)系型數(shù)據(jù)庫嘛)。還有個我覺得是缺點,占用空間!
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
您可能感興趣的文章:- MongoDB模糊查詢操作案例詳解(類關(guān)系型數(shù)據(jù)庫的 like 和 not like)
- MongoDB學(xué)習(xí)筆記(四) 用MongoDB的文檔結(jié)構(gòu)描述數(shù)據(jù)關(guān)系
- 淺談MongoDB 關(guān)系