使用 DynamoDB 用戶端 - AWS SDK for JavaScript

我們宣布了即將推 end-of-support 出的 AWS SDK for JavaScript v2。我們建議您移轉至 AWS SDK for JavaScript v3。有關日期,其他詳細信息以及如何遷移的信息,請參閱鏈接的公告。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 DynamoDB 用戶端

JavaScript code example that applies to Node.js execution

這個 Node.js 程式碼範例會說明:

  • 如何使用文件用戶端存取 DynamoDB 表格。

使用案例

DynamoDB 文件用戶端透過抽象屬性值的概念,簡化了使用項目的工作。這種抽象註釋作為輸入參數提供的本機 JavaScript 類型,以及將註釋的響應數據轉換為本地類型。 JavaScript

如需 DynamoDB 文件用戶端類別的詳細資訊,請參閱 API 參考AWS.DynamoDB.DocumentClient中的。如需使用 Amazon DynamoDB 進行程式設計的詳細資訊,請參閱 Amazon DynamoDB 開發人員指南中的使用 DynamoDB 進行程式設計

在此範例中,您可以使用一系列 Node.js 模組,使用文件用戶端在 DynamoDB 表上執行基本操作。程式碼會使用 SDK JavaScript 來查詢和掃描使用 DynamoDB 文件用戶端類別的下列方法的資料表:

先決條件任務

若要設定和執行此範例,請先完成這些任務:

從資料表取得項目

以檔名 ddbdoc_get.js 建立一個 Node.js 模組。請務必依前述的內容來設定軟體開發套件。若要存取 DynamoDB,請建立一個物件AWS.DynamoDB.DocumentClient。建立 JSON 物件,其包含從資料表取得項目所需的參數,在此範例中包括資料表名稱、在該資料表中雜湊索引鍵的名稱,以及您要取得之項目的雜湊索引鍵值。呼叫 DynamoDB 文件用戶端的get方法。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB document client var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" }); var params = { TableName: "EPISODES_TABLE", Key: { KEY_NAME: VALUE }, }; docClient.get(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.Item); } });

若要執行範例,請在命令列中輸入以下內容。

node ddbdoc_get.js

您可以在這裡找到此範例程式碼 GitHub。

將項目放置在資料表中

以檔名 ddbdoc_put.js 建立一個 Node.js 模組。請務必依前述的內容來設定軟體開發套件。若要存取 DynamoDB,請建立一個物件AWS.DynamoDB.DocumentClient。建立 JSON 物件,其包含將項目寫入資料表所需的參數,在此範例中包括資料表名稱和要新增或更新,且內含雜湊索引鍵和值之項目的描述,以及要在項目上設定的屬性名稱和值。呼叫 DynamoDB 文件用戶端的put方法。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB document client var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" }); var params = { TableName: "TABLE", Item: { HASHKEY: VALUE, ATTRIBUTE_1: "STRING_VALUE", ATTRIBUTE_2: VALUE_2, }, }; docClient.put(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });

若要執行範例,請在命令列中輸入以下內容。

node ddbdoc_put.js

您可以在這裡找到此範例程式碼 GitHub。

在資料表中更新項目

以檔名 ddbdoc_update.js 建立一個 Node.js 模組。請務必依前述的內容來設定軟體開發套件。若要存取 DynamoDB,請建立一個物件AWS.DynamoDB.DocumentClient。建立 JSON 物件,其包含將項目寫入資料表所需的參數,在此範例中包括資料表名稱、要更新的項目索引鍵,以及一組 UpdateExpressions,其會定義要使用您在 ExpressionAttributeValues 參數中將值指派至其中的符記所更新的項目屬性。呼叫 DynamoDB 文件用戶端的update方法。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB document client var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" }); // Create variables to hold numeric key values var season = SEASON_NUMBER; var episode = EPISODES_NUMBER; var params = { TableName: "EPISODES_TABLE", Key: { Season: season, Episode: episode, }, UpdateExpression: "set Title = :t, Subtitle = :s", ExpressionAttributeValues: { ":t": "NEW_TITLE", ":s": "NEW_SUBTITLE", }, }; docClient.update(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });

若要執行範例,請在命令列中輸入以下內容。

node ddbdoc_update.js

您可以在這裡找到此範例程式碼 GitHub。

查詢資料表

此範例會查詢內含影片系列之相關集資訊的表格,會為超過 9 集且子標題中含有指定片語的第二季集傳回集標題和子標題。

以檔名 ddbdoc_query.js 建立一個 Node.js 模組。請務必依前述的內容來設定軟體開發套件。若要存取 DynamoDB,請建立一個物件AWS.DynamoDB.DocumentClient。建立 JSON 物件,其包含查詢資料表所需的參數,在此範例中包括資料表名稱、查詢所需的 ExpressionAttributeValues,以及使用這些值來定義查詢要傳回之項目的 KeyConditionExpression。呼叫 DynamoDB 文件用戶端的query方法。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB document client var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" }); var params = { ExpressionAttributeValues: { ":s": 2, ":e": 9, ":topic": "PHRASE", }, KeyConditionExpression: "Season = :s and Episode > :e", FilterExpression: "contains (Subtitle, :topic)", TableName: "EPISODES_TABLE", }; docClient.query(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.Items); } });

若要執行範例,請在命令列中輸入以下內容。

node ddbdoc_query.js

您可以在這裡找到此範例程式碼 GitHub。

從資料表中刪除項目

以檔名 ddbdoc_delete.js 建立一個 Node.js 模組。請務必依前述的內容來設定軟體開發套件。若要存取 DynamoDB,請建立一個物件AWS.DynamoDB.DocumentClient。建立 JSON 物件,其包含要在資料表中刪除項目所需的參數,在此範例中包括資料表名稱,以及您要刪除之項目的雜湊索引鍵名稱和值。呼叫 DynamoDB 文件用戶端的delete方法。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB document client var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" }); var params = { Key: { HASH_KEY: VALUE, }, TableName: "TABLE", }; docClient.delete(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });

若要執行範例,請在命令列中輸入以下內容。

node ddbdoc_delete.js

您可以在這裡找到此範例程式碼 GitHub。