開始搭配 Azure Cosmos DB for MongoDB 使用 JavaScript
適用於: MongoDB
本文說明如何使用原生 MongoDB npm 套件連線到 Azure Cosmos DB for MongoDB。 連線之後,您即可在資料庫、集合和文件上執行作業。
注意
範例程式碼片段可在 GitHub 上以 JavaScript 專案形式取得。
API for MongoDB 參考文件 | MongoDB 套件 (npm)
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
- Node.js LTS
- Azure 命令列介面 (CLI) 或 Azure PowerShell
- Azure Cosmos DB for MongoDB 資源
建立新的 JavaScript 應用程式
使用您慣用的終端機,在空白資料夾中建立新的 JavaScript 應用程式。 使用
npm init
命令開始提示字元,以建立package.json
檔案。 接受提示字元的預設值。npm init
將 MongoDB npm 套件新增至 JavaScript 專案。 使用
npm install package
命令,指定 npm 套件的名稱。 在本機部署期間,會使用dotenv
套件來讀取.env
檔案中的環境變數。npm install mongodb dotenv
若要執行應用程式,請使用終端機瀏覽至應用程式目錄並執行應用程式。
node index.js
搭配 MongoDB 原生驅動程式連線至 Azure Cosmos DB for MongoDB
若要搭配 MongoDB 原生驅動程式連線至 Azure Cosmos DB,請建立 MongoClient
類別的執行個體。 此類別是針對資料庫執行所有作業的起點。
MongoClient 最常見的建構函式有兩個參數:
參數 | 範例值 | 描述 |
---|---|---|
url |
COSMOS_CONNECTION_STRING 環境變數 |
API for MongoDB 連接字串用於所有要求 |
options |
{ssl: true, tls: true, } |
適用於連線的 MongoDB 選項。 |
請參閱連線問題的疑難排解指南。
取得資源名稱
建立 resourceGroupName 的殼層變數。
# Variable for resource group name resourceGroupName="msdocs-cosmos"
使用
az cosmosdb list
命令來擷取資源群組中第一個 Azure Cosmos DB 帳戶的名稱,並將其儲存在 accountName 殼層變數中。# Retrieve most recently created account name accountName=$( az cosmosdb list \ --resource-group $resourceGroupName \ --query "[0].name" \ --output tsv )
擷取連接字串
使用
az cosmosdb keys list
命令,從帳戶的連接字串清單中尋找 API for MongoDB 連接字串。az cosmosdb keys list --type connection-strings \ --resource-group $resourceGroupName \ --name $accountName
記錄 PRIMARY KEY 值。 稍後您將使用這些認證。
設定環境變數
若要在程式碼內使用 CONNECTION STRING 值,請在執行應用程式的本機環境中設定此值。 若要設定環境變數,請使用您慣用的終端機來執行下列命令:
$env:COSMOS_CONNECTION_STRING = "<cosmos-connection-string>"
使用連接字串建立 MongoClient
新增相依性以參考 MongoDB 和 DotEnv npm 套件。
// Read .env file and set environment variables require('dotenv').config(); // Use official mongodb driver to connect to the server const { MongoClient } = require('mongodb');
使用建構函式定義
MongoClient
類別的新執行個體,並且定義process.env.
以使用連接字串。// New instance of MongoClient with connection string // for Cosmos DB const url = process.env.COSMOS_CONNECTION_STRING; const client = new MongoClient(url); // connect to the server await client.connect(); // client options const options = client.options console.log(`Options:\n${Object.keys(options).map(key => `\t${key}: ${options[key]}\n`)}`);
如需以不同方式建立 MongoClient
執行個體的詳細資訊,請參閱 MongoDB NodeJS 驅動程式快速入門。
關閉 MongoClient 連線
當應用程式完成連線時,請記得將其關閉。 該 .close()
呼叫應該在進行所有資料庫呼叫之後。
client.close()
將 MongoDB 用戶端類別與適用於 API for MongoDB 的 Azure Cosmos DB 搭配使用
在開始建置應用程式之前,讓我們看一下 Azure Cosmos DB 中的資源階層。 Azure Cosmos DB 具有用來建立和存取資源的特定物件模型。 Azure Cosmos DB 會在由帳戶、資料戶、集合和文件所組成的階層中建立資源。
階層式圖表:頂端顯示 Azure Cosmos DB 資料庫帳戶。 帳戶有兩個子資料庫節點。 其中一個資料庫節點包含兩個子集合節點。 另一個資料庫節點包含單一子集合節點。 該單一集合節點有三個子文件節點。
每種資源類型都會以一或多個相關聯的 JavaScript 類別來表示。 以下是最常見類別的清單:
類別 | 描述 |
---|---|
MongoClient |
此類別提供 Azure Cosmos DB 上 API for MongoDB 層的用戶端邏輯表示法。 用戶端物件會用於設定及執行針對服務的要求。 |
Db |
此類別是服務中可能或可能不存在的資料庫參考。 當您嘗試存取資料庫或對其執行作業時,資料庫為已驗證的伺服器端。 |
Collection |
此類別為集合參考,可能尚未存在於伺服器中。 當您嘗試使用集合時,集合為已驗證的伺服器端。 |
下列指南說明如何以上每個類別來組建應用程式。
指南:
另請參閱
下一步
既然您已連線到 API for MongoDB 帳戶,請使用下一個指南來建立和管理資料庫。