DynamoDB 文档客户端 - Amazon SDK for JavaScript
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon SDK for JavaScript V3 API 参考指南详细描述了 Amazon SDK for JavaScript 版本 3 (V3) 的所有API操作。

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

DynamoDB 文档客户端

v3 中 DynamoDB 文档客户端的基本用法

  • 在 v2 中,您可以使用该AWS.DynamoDB.DocumentClient类使用数组、数字和对象等 JavaScript 本机类型调用 DynamoDB API。因此,它通过抽象化属性值的概念,简化了在 Amazon DynamoDB 中处理项目的过程。

  • 在 v3 中,可以使用等效的@aws-sdk/lib-dynamodb客户端。它与 v3 SDK 中的普通服务客户端类似,不同之处在于它在构造函数中使用基本的 DynamoDB 客户端。

例如:

import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; // ES6 import // const { DynamoDBClient } = require("@aws-sdk/client-dynamodb"); // CommonJS import import { DynamoDBDocumentClient, PutCommand } from "@aws-sdk/lib-dynamodb"; // ES6 import // const { DynamoDBDocumentClient, PutCommand } = require("@aws-sdk/lib-dynamodb"); // CommonJS import // Bare-bones DynamoDB Client const client = new DynamoDBClient({}); // Bare-bones document client const ddbDocClient = DynamoDBDocumentClient.from(client); // client is DynamoDB client await ddbDocClient.send( new PutCommand({ TableName, Item: { id: "1", content: "content from DynamoDBDocumentClient", }, }) );

Undefined编组时的值

  • 在 v2 中,在编组到 DynamoDB 的过程中,对象中的undefined值会被自动省略。

  • 在 v3 中,中的默认编组行为@aws-sdk/lib-dynamodb已更改:不再省略带有undefined值的对象。为了与 v2 的功能保持一致,开发者必须在 DynamoDB 文档marshallOptions客户端true中明确设置为。removeUndefinedValues

例如:

import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; import { DynamoDBDocumentClient, PutCommand } from "@aws-sdk/lib-dynamodb"; const client = new DynamoDBClient({}); // The DynamoDBDocumentClient is configured to handle undefined values properly const ddbDocClient = DynamoDBDocumentClient.from(client, { marshallOptions: { removeUndefinedValues: true } }); await ddbDocClient.send( new PutCommand({ TableName, Item: { id: "123", content: undefined // This value will be automatically omitted }; }) );

更多示例和配置可在软件包 README 中找到。