標籤:
一 Mongodb簡介:
通過查詢網上的一些資訊來介紹一下Mongodb的優勢:MongoDB是一個面向文檔的資料庫,目前由10gen開發並維護,它的功能豐富,齊全,完全可以替代MySQL。在使用MongoDB做產品原型的過程中,我們總結了MonogDB的一些亮點:
1 使用JSON風格文法,易於掌握和理解:MongoDB使用JSON的變種BSON作為內部儲存的格式和文法。針對MongoDB的操作都使用JSON風格文法,用戶端提交或接收的資料都使用JSON形式來展現。相對於SQL來說,更加直觀,容易理解和掌握。
2 Schema-less,支援嵌入子文檔:MongoDB是一個Schema-free的文檔資料庫。一個資料庫可以有多個Collection,每個Collection是Documents的集合。Collection和Document和傳統資料庫的Table和Row並不對等。無需事先定義Collection,隨時可以建立。Collection中可以包含具有不同schema的文檔記錄。 這意味著,你上一條記錄中的文檔有3個屬性,而下一條記錄的文檔可以有10個屬性,屬性的類型既可以是基本的資料類型(如數字、字串、日期等),也可以是數組或者散列,甚至還可以是一個子文檔(embed document)。這樣,可以實現逆正常化(denormalizing)的資料模型,提高查詢的速度。圖1 MongoDB是一個Schema-free的文檔資料庫圖2是一個例子,作品和評論可以設計為一個collection,評論作為子文檔內嵌在art的comments屬性中,評論的回複則作為comment子文檔的子文檔內嵌於replies屬性。按照這種設計模式,只需要按照作品id檢索一次,即可獲得所有相關的資訊了。
3 在MongoDB中,不強調一定對資料進行Normalize ,很多場合都建議De-normalize,開發人員可以扔掉傳統關聯式資料庫各種範式的限制,不需要把所有的實體都映射為一個Collection,只需定義最頂級的class。MongoDB的文檔模型可以讓我們很輕鬆就能將自己的Object映射到collection中實現儲存。圖2 MongoDB支援嵌入子文檔簡單易用的查詢方式:MongoDB中的查詢讓人很舒適,沒有SQL難記的文法,直接使用JSON,相當的直觀。對不同的開發語言,你可以使用它最基本的數組或散列格式進行查詢。配合附加的operator,MongoDB支援範圍查詢,Regex查詢,對子文檔內屬性的查詢,可以取代原來大多數任務的SQL查詢。CRUD更加簡單,支援in-place update:只要定義一個數組,然後傳遞給MongoDB的insert/update方法就可自動插入或更新;對於更新模式,MongoDB支援一個upsert選項,即:“如果記錄存在那麼更新,否則插入”。MongoDB的update方法還支援Modifier,通過Modifier可實現在服務端即時更新,省去用戶端和服務端的通訊。這些modifer可以讓MongoDB具有和Redis、Memcached等KV類似的功能:較之MySQL,MonoDB更加簡單快速。
二 安裝Mongodb
在安裝Mongodb之前首先下載Mongodb然後再進行安裝
2.1 下載源檔案
MongoDB的官網是:http://www.mongodb.org/
MongoDB最新版本下載在官網的DownLoad菜單下:http://www.mongodb.org/downloads
我選擇的是Windows 32-bit 2.6.6版本
MongoDB For .net 驅動開發包位於官網的Driver菜單下(含其它語言開發連結):https://github.com/mongodb/mongo-csharp-driver/downloads
本人作業系統為Windows7 專業版,選擇MongoDB版本為Windows 32-bit 1.8.1,開發包為VS2012版本,下載之後的源檔案為:mongodb-win32-i386-2.6.6.zip
同時我們也可以看看在解壓後的bin目錄下面都有些什麼:
2.2 安裝資料庫
這裡我們將資料庫安裝到原生F盤中,當然我們也可以根據需要裝在任意一個盤中。這裡我們需要建立一下檔案夾:
F:\mongodb\data\db 在mongodb檔案夾下面建立data檔案夾,並在data的下面建立db檔案夾,這些檔案夾非常重要,主要是用來存放資料庫資料檔案的。
F:\mongodb\logs\mongodb.log 在mongodb檔案夾下面建立logs檔案夾,並在該檔案夾下面建立mongodb.log檔案,這個檔案夾主要是存放系統記錄檔,這幾個檔案 夾是必須手動進行建立的。
2.3 啟動Mongodb
進入dos環境,進入F:\mongodb\data\db 檔案夾,使用mongod.exe工具來啟動Mongodb,啟動的命令是:mongodb --dbpath F:\mongodb\data\bin ,這個目錄就是 我們剛才建立的目錄,這樣我們就能夠啟動Mongodb,並啟動監聽,我們也可以測試資料庫是否啟動,在瀏覽器輸入:http://localhost:27017/,可以看到如下提示:
You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number 看到這樣的提示我們的資料庫就能成 功進行監聽。
2.4 安裝成Windows服務
如果每一次啟動該資料庫的時候都要採用這種方式的話,會非常麻煩,所以我們考慮將其安裝成Windows服務。
運行cmd.exe
> cd f:
> cd F:\mongodb\bin
> F:\mongodb\bin>mongod --dbpath F:\mongodb\data\db --logpath F:\mongodb\logs\mongodb.log --install --serviceName "MongoDB"
這裡mongodb.log就是開始建立的記錄檔,--serviceName "MongoDB" 服務名為MongoDB
啟動建立的MongoDB服務
net start MongoDB (啟動MongoDB服務) net stop MongoDB (停止MongoDB服務) 然後在服務中查看是否啟動了該項服務,這樣每次開機之後,就會啟動該服務 來運行該服務,而不必每次啟動該服務。
這裡需要特別注意的是:在我的電腦中開啟cmd的時候必須以管理員權限開啟,然後執行相關的代碼才能正確建立Windows服務,這點特別需要注意,在不同的Windows作業系統中,可能賦予的許可權不同,如果不以管理員權限開啟cmd,然後運行這些程式的話,在logs\Mongodb.log中會出現“拒絕訪問”的提示,這個需要引起注意。
安裝MongoDB(做成Windows服務)並載入C#驅動程式