MongoDB

MongoDB簡介

MongoDB是一個基於分佈式文件存儲的數據庫。由C++語言編寫。旨在爲WEB應用提供可擴展的高性能數據存儲解決方案。

MongoDB是一個介於關係數據庫和非關係數據庫之間的產品。是非關係數據庫當中功能最豐富,最像關係數據庫的。他支持的數據結構非常鬆散,是類似json的bson格式,因此可以存儲比較複雜的數據類型。Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似於面向對象的查詢語言,幾乎可以實現類似關係數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引。其最新的版本的MongoDB2.4,添加了對地理位置的索引搜索、全文檢索等功能。

同時MongoDB是一個面向集合的、模式自由的文檔型數據庫。文檔是mongodb中的最核心的概念,是其核心單元,我們可以將文檔類比成關係型數據庫中的每一行數據。多個鍵及其關聯的值有序的放置在一起就是文檔。

面向集合指的是MongoDB中沒有表的概念。將關係型數據庫中的表的概念在MongoDB中使用集合實現。集合就是一組文檔的組合。
模式自由指的是MongoDB集合中的每個文檔的模式是沒有約束的。也就是說MongoDB一個集合中存儲的文檔的結構可以是不同的。例如下面的兩個文檔可以存儲在同一個集合中。

{_id:1,name:”xiangyue”}
{_id:2,course:”math”,press:”hebei”}

MongoDB的優勢

1.豐富的數據模型 MongoDB放棄了關係型數據庫中“行”的概念,將其轉換爲“文檔”模型。利用文檔模型我們可以實現文檔的嵌套,這樣我們可以使用一個文檔來表示更加複雜、具有層次結構的數據。另外MongoDB中的文檔是無模式的,所以這個對於我們以後爲數據庫中添加、刪除字段等修改數據庫模式的操作比較方便。

2.容易擴展 隨着web2.0的興起,數據量開始飛速的增長,原來一臺服務器能夠存儲所有的數據,現在一臺服務器已經不能滿足要求了,這種情況下我們可以更換更大的硬盤或者更高配置的服務器,但是這樣的成本比較高。所以很多人選擇分佈式存儲,但是對於關係型數據庫來說,實現分佈式比較麻煩,而對於MongoDB來說實現分佈式是比較容易的。MongoDB在設計之初就完全考慮到了分佈式的應用,所以在MongoDB中可以使用主從複製、副本集很容易完成擴展。

3.功能強大且管理簡單 MongoDB支持索引、javascript存儲、聚合Map-Reduce、固定集合、文件存儲等功能。MongoDB儘量讓服務器自治來簡化服務器的管理工作。比如在使用分佈式的時候,主服務器掛了,會自動切換到備份服務器上。

4.最類似SQL數據庫 MongoDB雖然拋棄了“行”的概念,但是“文檔”的概念也可以類比爲行,這樣對於一些從關係型數據庫轉過來的人也比較容易理解。另外它提供了豐富的查詢功能,可以簡化我們很多的操作。

5.大公司的支持 對於我們使用一個產品,有時候就會擔心是否有大公司的支持。對於有大公司支持的產品我們使用起來就比較放心,否則我們就會考慮許多問題,畏首畏尾。MongoDB是有10gen公司提供支持。

MongoDB的基本命令

MongoDB的基本命令

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章