MongoDB Tutorial(1)雲端時代的 MongoDB 環境建置 by MonsterSupreme | CodeData
top

MongoDB Tutorial(1)雲端時代的 MongoDB 環境建置

分享:

MongoDB

MongoDB 是 10gen 這家公司開發的一個 NoSQL Database,屬於 Document-Oriented Database 這一類型,希望能夠結合 Relational Database 與 Key/Value Database 雙方的優點,很適合用在 Web 應用程式、Internet 架構的環境底下。

Terminology

MongoDB 有一些基本術語,跟傳統 Relational Database 剛好可以一對一對應:

RDBMS MongoDB
Database Database
Table Collection
Record/Row Document
Column Field
Primary Key _id

MongoDB 裡面每一筆紀錄就是一個所謂的 Document:

{
  "_id": "10280",
  "city": "NEW YORK",
  "state": "NY",
  "pop": 5574,
  "loc": [-74.016323, 40.710537]
}

沒錯,寫法看起來就跟 JSON 一樣。_id 欄位就是 Primary Key,其他都是一般的欄位。

如果把具有類似欄位定義的一堆 Document 集合起來,就是所謂的 Collection。為什麼說「具有類似欄位定義」呢?因為 MongoDB 一樣具有 NoSQL 常見的 Schemaless 特色,所以每個 Document 不見得會有相同的欄位,就算欄位名稱相同,存放的內容資料型別也可能不同。

如果把許多個 Collection 基於某個共同的目的集合起來,就是所謂的 Database,這個講法倒是跟傳統 Relational Database 一樣。

Learning

以往學習 MongoDB,一開始總是要大家先去 MongoDB 網站下載檔案、解壓縮、設定、執行。不過現在都已經進步到 Cloud Computing,學習的環境應該也可以搬到雲端上面去,至少 Server 放上去應該是理所當然的一件事。

如果只是想簡單看一下 MongoDB 長什麼樣子,可以直接到 MongoDB 提供的 Try MongoDB 網站,透過 Web 介面玩一玩 MongoDB:

TryMongoDB

這種方式沒辦法讓我們建立自己的 Database,資料也比較無法保存,所以真的只適合簡單玩一玩。

如果想要認真一點接觸 MongoDB,MongoHQMongoLab 都提供了免費建置 MongoDB Server 的方案,大小是 512 MB,從學習的角度來說已經相當足夠。

MongoHQ

MongoLab

因為 MongoLab 提供的 Client 端操作介面比 MongoHQ 完整一些,所以底下我們就以 MongoLab 來做介紹。

Sign Up

首先開啟 MongoLab 首頁:

MongoLab 01

按下右上角的 Sign up 按鈕,填入帳號等基本資料:

MongoLab 02

按下 Create account 按鈕,一切順利的話,就可以建立 MongoLab 帳號,進入管理介面:

MongoLab 03

Database

帳號建立完成,進入管理介面之後,按下 Create new 按鈕,就可以準備建立 Database:

MongoLab 04

其中:

  1. Location 請選取底下兩者之一,因為其他地區都不提供免費方案
    • Amazon's EU (Ireland) Region (eu-west-1)
    • Amazon's US East (Virginia) Region (us-east-1)
  2. Plan 就可以切換到 Single-node (development)
  3. 再選取左邊的 Sandbox 方案,
  4. MongoDB version 只有一種 2.4.x
  5. Storage options 只有一種 0.5 GB
  6. Database name 請自行設定,比方說 cities
  7. Price 當然就是 $0 / month

MongoLab 05

按下最底下的 Create new MongoDB deployment 按鈕,就會根據設定的 Subscription 開始建立 Database,完成之後會回到一開始的管理介面:

MongoLab 06

用滑鼠點擊剛剛建立的 cities Database,就會顯示 Database 的詳細資訊:

MongoLab 07

中間很清楚地寫著:A database user is required to connect to this database. Click here to create a new one.,所以接下來的工作,就是建立 Database User。

Database User

在顯示 Database 詳細資料的畫面,按下中間的 Click here 連結,新增一個 Database User:

MongoLab 08

填入帳號密碼之後,再按下 Create 按鈕,就可以看到帳戶相關資料顯示在 Users 標籤頁:

MongoLab 09

Collection

切換到畫面中間最左邊的 Collections 標籤頁,就可以看到所有 Collection 的列表,不過目前是空的:

MongoLab 10

按下畫面中間右邊的 Add collection 按鈕,自行輸入 Collection 名稱,比方說 zips

MongoLab 11

按下 Create 按鈕確認,就可以建立 zips Collection:

MongoLab 12

用滑鼠點擊剛剛建立的 zips Collection,就會顯示 Collection 的詳細資料,預設是停在 Documents 標籤頁,不過目前也是空的:

MongoLab 13

Document CRUD

按下畫面中間右邊的 Add document 按鈕,就可以輸入想要新增的 Document 內容:

{
  "_id": "10280",
  "city": "NEW YORK",
  "state": "NY",
  "pop": 5574,
  "loc": [-74.016323, 40.710537]
}

MongoLab 14

按下右下角的 Create and go back 按鈕,就可以將 NEW YORK Document 寫入 Collection:

MongoLab 15

按照相同的方式,輸入底下 BEVERLYSPRINGFIELD 兩個 Document:

{
    "city": "BEVERLY", 
    "loc": [-97.981785, 38.984416], 
    "pop": 389, 
    "state": "KS", 
    "_id": "67423"
}

{
    "city": "SPRINGFIELD", 
    "loc": [-92.54567, 35.274879], 
    "pop": 752, 
    "state": "AR", 
    "_id": "72157"
}

每個 Document 輸入完成之後,可以按下 Create and continue editing 按鈕,方便連續輸入:

MongoLab 16

這些資料其實可以從 MongoDB 網站上提供的 zips.json 檔案取得。

如果想要更新某一個 Document,比方說 SPRINGFIELD,就直接按下那一個 Document 進行修改:

MongoLab 17

改完按下 Save 或 Save and go back 按鈕存檔即可:

MongoLab 18

如果想要對 zips Collection 進行查詢,就從畫面中間的 --- Start new search --- 下拉方塊裡頭選取 [new search]

MongoLab 19

然後在中間的 Query (blank returns all objects) 方塊輸入查詢條件,甚至還可以搭配右邊的 Sort order 與 Subsets of fields 進行微調:

MongoLab 20

再按下中間右邊的 Search 按鈕,就可以看到查詢的結果:

MongoLab 21

如果不輸入任何條件,就會列出 Collection 中所有的 Document:

MongoLab 22

如果想要刪除任何一個 Document,比方說 春田市,就直接按下 Document 旁邊的 X 按鈕:

MongoLab 23

再按下 Delete 按鈕確認即可:

MongoLab 24

後續 >> MongoDB Tutorial(2)MongoDB 的 Query Language

 

分享:
按讚!加入 CodeData Facebook 粉絲群

相關文章

留言

留言請先。還沒帳號註冊也可以使用FacebookGoogle+登錄留言

Chih-Kuo Hu04/21

Hi, 您好,我一直關注這個新形態的數據庫,它因Scalbility& Big Data有了特殊的設計觀點,但是在Survey的過程中,我看了很多Forum,為什麼在很多人測試的過程中,基於Big Data Volumn的情況下,測試效果反而輸了Rational Database,請問您有相關方面的見解嗎? (基於同一個設備水平的測試)

MonsterSupreme04/23

Microsoft Azure 跟 MongoLab 也合作了:http://blogs.msdn.com/b/windowsazure/archive/2014/04/22/announcing-new-mongodb-instances-on-microsoft-azure.aspx

關於作者

目前從事教育訓練工作。自認為會的技術不多,但是學不會的也不多,最擅長把老闆交代的工作,以及找不到老師教的技術,想辦法變成自己的專長。

熱門論壇文章

熱門技術文章