色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

白話MongoDB(一)

  按照官方的說法,MongoDB是一種可擴展的高性能的開源的面向文檔(document-oriented )的數據庫,采用C++開發。注意mongo不是mango(芒果),這個詞是從humongous中截取出來的,其野心不言而明,直指海量數據存儲。和其他很多NoSQL不太一樣,MongoDB背后有一個專門的商業公司在提供支持和推廣,有點類似MySQL AB的模式。這一系列文章,是為入門者寫的,已經對NoSQL和MongoDB有一定研究和經驗的,可以略過,或者看看如有疏漏,請留言指出。

  面向文檔,那么什么是文檔呢?很明顯這不是我們常見的word文檔。這里說的文檔,是一種可以嵌套的數據集合。從關系數據庫的范式的概念來說,嵌套是明顯的反范式設計。范式設計的好處是消除了依賴,但是增加了關聯,查詢需要通過關聯兩張或者多張表來獲得所需要的全部數據,但是更改操作是原子的,只需要修改一個地方即可。反范式則是增加了數據冗余來提升查詢性能,但更新操作可能需要更新冗余的多處數據,需要注意一致性的問題。

  一個典型的例子,如blog,關系數據庫中一般可以把文章設計為一張表,評論設計為一張表,那么在頁面需要展示一篇文章和其對應的評論的時候,就需要關聯查詢文章表和評論表。但是面向文檔的設計,可以將評論作為文章的一個嵌套文檔存放在一起,這不但省去了關聯查詢,由于存儲在一起,查詢的性能也可以做到更好。

  MongoDB的面向文檔采用的是BSON,一種類似JSON的格式,但是是二進制序列化的。如上面提到的blog的文章和評論,可以做如下設計:

{ 'id':1, 'author':'NinGoo', 'title':'白話MongoDB(一)', 'content':'按照官方的說法,此處省略一萬字',
comment:[ {
'comment-author':'宋兵甲', 'comment-content':'有木有' } ,
{
'comment-author':'尼瑪','comment-content':'傷不起啊' }
]
}

it知識庫白話MongoDB(一),轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 太白县| 金堂县| 云梦县| 兴安县| 辽中县| 江孜县| 彰化县| 龙州县| 宜黄县| 北票市| 咸宁市| 安丘市| 满城县| 龙陵县| 常山县| 永胜县| 沅陵县| 合川市| 子长县| 大英县| 新野县| 和林格尔县| 永定县| 罗山县| 福泉市| 白朗县| 巍山| 林甸县| 万全县| 扬州市| 赤峰市| 丽水市| 冀州市| 巩留县| 潮安县| 定南县| 香格里拉县| 甘德县| 巴林左旗| 永胜县| 怀仁县|