Azure DocumentDB(2)小試 DocumentDB Node.js SDK by MonsterSupreme | CodeData
top

Azure DocumentDB(2)小試 DocumentDB Node.js SDK

分享:

在上次 Azure DocumentDB(1)DocumentDB 帳號申請 這篇文章中,我們簡單地介紹了一下 Microsoft 剛剛推出的 Azure DocumentDB,並且帶著大家申請了一個 DocumentDB 帳號。今天,我們要帶著大家寫點程式,在 DocumentDB 上建立 Database 與 Collection,然後新增 Document。

基本資料

連上 Microsoft Azure 的 Management Preview Portal

Azure Management Preview Portal

按下上次釘選在 Startboard 上的 Browse DocumentDB Account 白色方塊,或是按下畫面左邊的 Browse 按鈕,選取 DocumentDB accounts 選項,就會出現目前這個 Azure 帳號申請的所有 DocumentDB 帳號:

DocumentDB Accounts

再按下上次申請的 DocumentDB 帳號,也就是畫面中的 monster,就會看到 monster 帳號的詳細內容,比方說最近的使用狀況:

Account Summary 1

把 Blade 往下捲一捲,還可以看到這個帳號目前建立了幾個 Database,以 monster 帳號來說,現在還沒有:

Account Summary 2

如果按下 Blade 上面藍色的 Quick start 圖示,就會再展開另一個 DocumentDB Quick Start 的 Blade,提供 DocumentDB 的各種資訊:

Quick Start

這時候請按下第一個部分 Start Coding 的 Get your URI and key 連結,記下 URI 與 Primary Key:

URI and Key

monster 帳號來說:

  • URI 是 http://monster.documents.azure.com:443/
  • Primary Key 是 G60G..........................==
  • Secondary Key 是 hSK8........................==

Primary Key 與 Secondary Key 只要記一組就可以。

安裝 SDK

回到 DocumentDB Quick Start 這個 Blade,第二個部分 Get the tools 就可以取得我們今天寫程式需要用到的 DocumentDB SDK,目前提供了四種:

  • .NET SDK
  • Node.js SDK
  • JavaScript SDK
  • Python SDK

因為我目前暫時不會 C#,也暫時不會 Python,所以只能從使用 JavaScript 語言的 Node.js SDK 與 JavaScript SDK 下手。不過,如果使用 JavaScript SDK 的話,因為要透過 Browser 幫忙呼叫 RESTful API,這時候又會因為 Same Origin Policy 的緣故被擋下來。所以,我們就按下 Get the tools 這一個部分的 Install Node.js SDK 連結,從 Node.js 下手:

Get the tools

Node.js SDK 網頁的上半部除了介紹這個 SDK 目前的一些版本資訊之外,最重要的就是如何安裝:

Node.js SDK 1

下半部更重要,有 Hello World 範例喔!

Node.js SDK 2

因為要以 Node.js 作示範,所以請大家先準備好一個可以開發 Node.js 應用程式的環境。接下來就可以執行 Windows 底下的 Command 視窗或是 OS X 底下的 iTerm 這一類命令列工具,建立一個撰寫 Hello World 的目錄,比方說就叫 documentdb

mkdir documentdb
cd documentdb

然後就可以安裝 DocumentDB 提供的 Node.js SDK:

npm install documentdb

Node.js SDK 3

再來就是參考剛剛 Node.js SDK 的 Hello World 程式,撰寫一個 documentdbclient.js 檔案,Database、Collection、Document 就跟 MongoDB Tutorial(1)雲端時代的 MongoDB 環境建置裡面用的資料一樣,都從 MongoDB 網站上提供的 zips.json 檔案取得,內容如下:

// 引入 documentdb 模組
var documentdb = require(“documentdb”);

// 透過 DocumentDB 帳號基本資料,建立 DocumentDB 的 DocumentClient 物件
var urlConnection = “http://monster.documents.azure.com”;                     
var auth = { 
    “masterKey”: “G60G..................==” 
};
var client = new documentdb.DocumentClient(urlConnection, auth);

// 定義 Database 與 Collection 的名稱,以及 Document 內容
var databaseDefinition = { 
    “id”: “cities” 
};

var collectionDefinition = { 
    “id”: “zips” 
};

var documentDefinition = {
    “city”: “BEVERLY”,
    “loc”: [-97.981785, 38.984416],
    “pop”: 389,
    “state”: “KS”,
    “id”: “67423”
};

// 透過 Callback 方式呼叫 DocumentClient 物件的 createDatabase、createCollection、與 createDocument 方法

client.createDatabase(databaseDefinition, function(err, database) {
    if (err) return console.log(err);        
    console.log(“Database created.”);

    client.createCollection(database._self, collectionDefinition, function(err, collection) {
        if (err) return console.log(err);
        console.log(“Collection created.”);

        client.createDocument(collection._self, documentDefinition, function(err, document) {
            if (err) return console.log(err);
            console.log(“Document created with content: “, document);
        });
    });
});

Azure DocumentDB nodejs SDK 網頁提供了 DocumentDB Node.js SDK 所有類別的說明文件:

Node.js SDK Document

如果要跟 DocumentDB 互動,最重要的就是先引入 documentdb 模組,建立 DocumentClient 物件,這部份就會用到剛剛記錄下來的 URI 與 Key。

取得 DocumentClient 物件之後,就可以依序呼叫 createDatabasecreateCollection、與 createDocument 等方法,建立 cities Database 與 zips Collection,然後新增 BEVERLY Document。因為配合 Node.js Asynchronous Callback 的運作方式,所以這些方法的最後一個參數,都是一個 Callback Function。

透過剛剛開啟的命令列視窗執行 documentdbclient.js 檔案,會看到以下的訊息:

Node.js Example

如果到 Microsoft Azure 的 Management Preview Portal 去看,就可以看到剛剛建立的 cities Database:

Example Database

按下 cities Database,會再展開一個新的 Blade,顯示 zips Collection:

Example Collection

小結

到目前為止,我們利用上一次申請的 DocumentDB 帳號,透過 DocumentDB 提供的 Node.js SDK,建立了 Database 與 Collection,並且試著新增了一個 Document。詳細的 CRUD 相關操作,就留待下一次再跟大家介紹囉!

切記:DocumentDB Node.js SDK 說明文件寫的內容,不一定是對的喔,還是要以程式真正執行的結果為準!

後續 >> Azure DocumentDB(3)小試 DocumentDB Java SDK

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

相關文章

留言

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

關於作者

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

熱門論壇文章

熱門技術文章