使用 DynamoDB 文档客户端 - AWS SDK for JavaScript

我们已宣布即将终止对 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 for 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 上的此处找到。

查询表

此示例查询包含有关视频系列的剧集信息的表,返回第二季第九集之后,字幕中包含指定短语的每集的名称和字幕。

创建文件名为 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 上的此处找到。