我们已宣布
在 DynamoDB 中批量读取和写入项目
此 Node.js 代码示例演示:
如何在 DynamoDB 表中批量读取和写入项目。
情景
在本示例中,您使用一系列 Node.js 模块在 DynamoDB 表中批量放置项目以及批量读取项目。代码使用 SDK for JavaScript,通过 DynamoDB 客户端类的以下方法来执行批量读取和写入操作:
先决条件任务
要设置和运行此示例,请先完成以下任务:
安装 Node.js。有关更多信息,请参阅 Node.js
网站。 使用用户凭证创建共享配置文件。有关提供共享凭证文件的更多信息,请参阅从共享凭证文件加载 Node.js 中的凭证。
创建一个您可以访问其项目的 DynamoDB 表。有关创建 DynamoDB 表的更多信息,请参阅在 DynamoDB 中创建和使用表。
批量读取项目
创建文件名为 ddb_batchgetitem.js
的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 DynamoDB,请创建一个 AWS.DynamoDB
服务对象。创建一个 JSON 对象,其中包含批量获取项目所需的参数,在此示例中包括要读取的一个或多个表的名称,在各个表中要读取的键的值,以及指定要返回的属性的投影表达式。调用 DynamoDB 服务对象的 batchGetItem
方法。
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB service object var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" }); var params = { RequestItems: { TABLE_NAME: { Keys: [ { KEY_NAME: { N: "KEY_VALUE_1" } }, { KEY_NAME: { N: "KEY_VALUE_2" } }, { KEY_NAME: { N: "KEY_VALUE_3" } }, ], ProjectionExpression: "KEY_NAME, ATTRIBUTE", }, }, }; ddb.batchGetItem(params, function (err, data) { if (err) { console.log("Error", err); } else { data.Responses.TABLE_NAME.forEach(function (element, index, array) { console.log(element); }); } });
要运行示例,请在命令行中键入以下内容。
node ddb_batchgetitem.js
此示例代码可在 GitHub 上的此处
批量写入项目
创建文件名为 ddb_batchwriteitem.js
的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 DynamoDB,请创建一个 AWS.DynamoDB
服务对象。创建一个 JSON 对象,其中包含批量获取项目所需的参数,在本示例中包括要写入项目的表,要写入的各个项目的键,以及属性及值。调用 DynamoDB 服务对象的 batchWriteItem
方法。
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB service object var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" }); var params = { RequestItems: { TABLE_NAME: [ { PutRequest: { Item: { KEY: { N: "KEY_VALUE" }, ATTRIBUTE_1: { S: "ATTRIBUTE_1_VALUE" }, ATTRIBUTE_2: { N: "ATTRIBUTE_2_VALUE" }, }, }, }, { PutRequest: { Item: { KEY: { N: "KEY_VALUE" }, ATTRIBUTE_1: { S: "ATTRIBUTE_1_VALUE" }, ATTRIBUTE_2: { N: "ATTRIBUTE_2_VALUE" }, }, }, }, ], }, }; ddb.batchWriteItem(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });
要运行示例,请在命令行中键入以下内容。
node ddb_batchwriteitem.js
此示例代码可在 GitHub 上的此处