在 DynamoDB 中批量读取和写入项目 - Amazon SDK for JavaScript
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

帮助我们改进Amazon SDK for JavaScript版本 3 (V3) 文档,方法是使用反馈链接,或者在上创建议题或拉取请求GitHub.

这些区域有:Amazon SDK for JavaScriptV3 API 参考指南详细描述了Amazon SDK for JavaScript版本 3 (V3)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 DynamoDB 中批量读取和写入项目

JavaScript code example that applies to Node.js execution

此 Node.js 代码示例演示:

  • 如何在 DynamoDB 表中批量读取和写入项目。

场景

在本示例中,您使用一系列 Node.js 模块在 DynamoDB 表中批量放置项目并读取一批项目。该代码使用 SDK JavaScript 要使用 DynamoDB 客户端类的下列方法执行批量读取和写入操作:

先决项任务

要设置和运行此示例,请先完成以下任务:

  • 设置项目环境以运行这些节点 JypeScript 示例,然后安装所需的Amazon SDK for JavaScript以及第三方模块。按照上的说明操作GitHub.

  • 使用用户凭证创建共享配置文件。有关提供共享凭证文件的更多信息,请参阅从共享凭证文件加载 Node.js 中的凭证

  • 创建一个可访问其项目的 DynamoDB 表。有关创建 DynamoDB 表的更多信息,请参阅。在 DynamoDB 中创建和使用表.

重要

这些示例使用 ECMascript6 (ES6)。这需要 Node.js 版本 13.x 或更高版本。要下载并安装最新版本的 Node.js,请参阅。Node.js 下载内容。.

但是,如果你更喜欢使用 CommonJS 语法,请参阅JavaScript ES6/常用JS 语法

Batch 读取项目

创建libs目录,然后创建文件名为的 Node.js 模块。ddbClient.js. 将下面的代码复制并粘贴到其中,这将创建 DynamoDB 客户端对象。Replace领域使用您的Amazonregion region。

// Create service client module using ES6 syntax. import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create an Amazon DynamoDB service client object. const ddbClient = new DynamoDBClient({ region: REGION }); export { ddbClient };

此代码是可用的GitHub 上的存储.

创建文件名为 ddb_batchgetitem.js 的 Node.js 模块。请确保按前面所示配置开发工具包,包括下载所需的客户端和软件包。要访问 DynamoDB,请创建DynamoDB客户端服务对象。创建一个 JSON 对象,其中包含批量获取项目所需的参数,在此示例中包括要读取的一个或多个表的名称,在各个表中要读取的键的值,以及指定要返回的属性的投影表达式。调用BatchGetItemCommandDynamoDB 服务对象的方法。

注意

ReplaceTABLE_NAME用表的名称,KEY_NAME用表的主键,KEY_VALUE包含属性值的主键行的值,以及ATTRIBUTE_NAME包含属性值的属性列的名称。

注意

下面的代码批量从主键仅由分区键组成的表中检索项目-KEY_NAME-而不是分开键和排序键。如果表具有由分区键和排序键组成的主键,则还必须为每个项目指定排序键名称和属性。

// Import required AWS SDK clients and commands for Node.js import { BatchGetItemCommand } from "@aws-sdk/client-dynamodb"; import { ddbClient } from "./libs/ddbClient.js"; // Set the parameters export const params = { RequestItems: { TABLE_NAME: { Keys: [ { KEY_NAME_1: { N: "KEY_VALUE" }, KEY_NAME_2: { N: "KEY_VALUE" }, KEY_NAME_3: { N: "KEY_VALUE" }, }, ], ProjectionExpression: "ATTRIBUTE_NAME", }, }, }; export const run = async () => { try { const data = await ddbClient.send(new BatchGetItemCommand(params)); console.log("Success, items retrieved", data); return data; } catch (err) { console.log("Error", err); } }; run();

要运行示例,请在命令提示符处输入以下内容。

node ddb_batchgetitem.js

可以找到这个示例代码。GitHub 上的存储.

Batch 写入项目

创建libs目录,然后创建文件名为的 Node.js 模块。ddbClient.js. 将下面的代码复制并粘贴到其中,这将创建 DynamoDB 客户端对象。Replace领域使用您的Amazonregion region。

// Create service client module using ES6 syntax. import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create an Amazon DynamoDB service client object. const ddbClient = new DynamoDBClient({ region: REGION }); export { ddbClient };

此代码是可用的GitHub 上的存储.

创建文件名为 ddb_batchwriteitem.js 的 Node.js 模块。请确保按前面所示配置开发工具包,包括下载所需的客户端和软件包。要访问 DynamoDB,请创建DynamoDB客户端服务对象。创建一个 JSON 对象,其中包含批量获取项目所需的参数,在本示例中包括要写入项目的表,要写入的各个项目的键,以及属性及值。调用BatchWriteItemCommandDynamoDB 服务对象的方法。

注意

ReplaceTABLE_NAME用表的名称,密钥使用项目的主键,KEY_VALUE包含属性值的主键行的值,以及ATTRIBUTE_NAME包含属性值的属性列的名称。

以下代码示例批量将项目写入表中,主键仅由分区键组成-KEY_NAME-而不是分开键和排序键。如果表具有由分区键和排序键组成的主键,则还必须为每个项目指定排序键名称和属性。

// Import required AWS SDK clients and commands for Node.js import { BatchWriteItemCommand } from "@aws-sdk/client-dynamodb"; import { ddbClient } from "./libs/ddbClient.js"; // Set the parameters export const 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" }, }, }, }, ], }, }; export const run = async () => { try { const data = await ddbClient.send(new BatchWriteItemCommand(params)); console.log("Success, items inserted", data); return data; } catch (err) { console.log("Error", err); } }; run();

要运行示例,请在命令提示符处输入以下内容。

node ddb_batchwriteitem.js

可以找到这个示例代码。GitHub 上的存储.