1. 程式人生 > >學習MongoDB--(2-1):MongoDB入門(概念簡介和啟動)

學習MongoDB--(2-1):MongoDB入門(概念簡介和啟動)

開始進入正式學習使用MongoDB的階段了,首先還是詳細介紹一下MongoDB的一些概念吧:

1》 文件:這個是MongoDB中資料的基本單元,非常類似於關係型資料庫的行,但比傳統行能表示的資訊複雜很多。

2》 集合:這個在MongoDB中代表一組文件,類似於關係型資料庫中的表。但在MongoDB中的表(就是集合)是沒有模式的,你可以將完全不同的文件放入同一個集合中,MongoDB不會做這方面的限制,但在實際使用中,從資料庫管理、操作效率、構建索引等方面看,不支援這麼做,最佳實踐是:為特定集合隱性規定一種模式。

3》 資料庫:在MongoDB中,一組集合可以組成一個數據庫。一個MongoDB例項可以承載多個數據庫。每個資料庫都有獨立的許可權控制。在實際應用中,通常,一個應用的所有資料放置在一個數據庫中。

分別就細節介紹一下吧:

【文件】:

多個鍵和其關聯的值有序地放置在一起便是文件,舉個例子吧:{“greeting”:“Hello World!”} 這就是MongoDB中最簡單的一個文件,只包含一個鍵/值對。MongoDB中對文件的區分包括:鍵值對的順序,鍵和值的型別,鍵和值的大小寫。這三者有任何一個不一致,這兩個文件就不相同。文件中鍵值對的“值”的資料型別不僅可以為例子所示的串,還可以為數字,甚至整個嵌入的文件等。“鍵”則只能是串,命名規則為:

1. 鍵不能包含“\0”(空字元),這個用於表示鍵的結束

2. “$”這個字元有特殊含義,在一般情況下避免使用,不使用這個特殊字元可以作為最佳實踐了

3. “_”以下劃線開頭的名稱是為系統預留的,最佳實踐中也不提倡這麼做

每一個文件在插入到集合中都會被分配一個預設的鍵“_id”,這個值在文件所在集合中是惟一的。

【集合】

無模式的集合表示的具體含義是:可以將這兩個文件放入同一個集合中:{"name":"drifterj", "job":"soft engineer"}, {"level":100}。這兩個文件的鍵不相同,值型別也不一致。但這種做法是不提倡的,這裡僅僅是無模式的示例。集合的命名規範為:

1. 不能為空串""

2. 不能包含“\0”(空字元),這是集合名稱結束的標誌

3. 不能以“system.”開頭,這個是系統保留字首,如system.user這個集合儲存所有資料庫使用者資訊,system.namespaces 保留所有資料庫集合的資訊。

4. 名稱中不能包含"$",這個字元為系統集合使用。

子集合:組織集合的一個慣例是,通過“.”字元分開的按名稱空間劃分的子集合。如一個部落格功能的應用可能包括如下兩個集合:blog.posts,blog.authors。這樣做會讓集合結構很清晰,但集合blog(這裡可能並不存在)和這兩個子集合沒有任何關係。

【資料庫】

資料庫就是一組集合,有獨立的許可權控制。其命名規範為:

1. 不能使空字串""

2. 不能含有' '(空格)、.、$、\、/ 和\0(空字元)

3. 應該全部小寫

4. 最多64位元組

資料庫名最終會變成檔案系統的檔名,所以對名稱的限制比文件和集合多一些細節。注意MongoDB系統中有如下預置的特殊資料庫,這些名稱不可使用:

1. admin :從許可權的角度看,這是“root”資料庫,加入這個資料庫的使用者,會繼承所有資料庫的許可權,一些特定的伺服器命令,如列出所有資料庫,關閉伺服器等也只能從這個資料庫執行。

2. local:這個資料庫中的資料不會被複制,可以用來儲存本地單臺伺服器的任意集合

3. config:當Mongo用於分配設定時,config資料庫在內部被使用,用來儲存分片的相關資訊。

把資料庫名稱放置在集合名稱前面,就是集合的完全限定名,稱為名稱空間,如在test資料庫中存在op.log的集合,那這個集合的完全限定名就是test.op.log。在MongoDB中完全限定名長度不得超過121個位元組,實際使用中,應控制在100個位元組。

【Windows下安裝,啟動MongoDB】:

MongoDB提供各種平臺的二進位制包,可以在http://www.mongodb.org下載(我的資源中也有 64位的)。先說一下MongoDB的版本號,偶數是穩定版,如1.6,1.8,2.0開頭的,奇數是開發版如1.7開頭的。 1.6.1, 1.6.2...等版本是1.7.0測試版推出後,在開發過程成對1.6.0版本發行的修正版。

"安裝MongoDB",一般就是指構建核心的資料庫伺服器mongod,他可以作為單個伺服器、主從節點、副本集的成員,還可以當做片。可以通過二進位制包 bin目錄下的mongod命令來啟動mongodb服務,不同於其他關係資料庫的安裝過程,mongodb的啟動過程令我感覺很新穎。利用mongod啟動服務,需要指定一個數據目錄,Windows下預設是C;\data\db,我顯示指定了另外的資料目錄:通過--dbpath參與

啟動結果為:

這樣MongoDB就啟動起來了,但每次這樣啟動,還是挺不爽的,麻煩不說,還多個視窗,容易別人誤關掉,所以MongoDB提供了服務的形式進行啟動,操作如下:

需要通過--logpath指定一個日誌檔案的路徑,並最後新增--install,執行完畢,進入控制面板“服務”,可看到:

這種方式方便多了,右鍵就可以啟動MongoDB的服務。也不會有多餘窗口出現。預設情況,MongoDB服務監聽27017埠,如果該埠被佔用,服務會啟動失敗!

啟動MongoDB的資料庫服務時,還會自動啟動一個http服務,監聽埠為28017,使用者可通過訪問http://localhost:28017 去訪問,去獲取一些資料庫管理資訊。

這樣,整個MongoDB的服務就啟動好了,我們就可以使用MongoDB了。