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

适用于 JavaScript 的 Amazon SDKV3 API 参考指南详细描述了 适用于 JavaScript 的 Amazon SDK 版本 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 中将 removeUndefinedValues 显式设置为 true

示例:

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. array: [1, undefined], // The undefined value will be automatically omitted. map: { key: undefined }, // The "key" will be automatically omitted. set: new Set([1, undefined]), // The undefined value will be automatically omitted. }; }) );

有关更多示例和配置,请参见程序包 README 文件。