La Guía de referencia de la API de AWS SDK for JavaScript V3 describe en detalle todas las operaciones de la API para la versión 3 (V3) de AWS SDK for JavaScript.
Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Cliente de documentos de DynamoDB
Uso básico del cliente de documentos de DynamoDB en v3
-
En v2, puede usar la clase
AWS.DynamoDB.DocumentClientpara llamar a las API de DynamoDB con tipos de JavaScript nativos, como Array, Number y Object. De este modo, se simplifica el trabajo con elementos en Amazon DynamoDB al abstraer la noción de valores de atributos. -
En v3, está disponible el cliente equivalente
@aws-sdk/lib-dynamodb. Es similar a los clientes de servicio normales del SDK v3, con la diferencia de que utiliza un cliente de DynamoDB básico en su constructor.
Ejemplo:
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", }, }) );
Valores Undefined en el momento de serializar
-
En v2, los valores
undefinedde los objetos se omitieron automáticamente durante el proceso de serialización para DynamoDB. -
En v3, el comportamiento de serialización predeterminado en
@aws-sdk/lib-dynamodbha cambiado: los objetos con valoresundefinedya no se omiten. Para alinearse con la funcionalidad de v2, los desarrolladores deben establecer de manera explícitaremoveUndefinedValuesentrueen elmarshallOptionsdel cliente de documentos de DynamoDB.
Ejemplo:
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. }; }) );
Hay más ejemplos y configuraciones disponibles en el archivo README del paquete