Usando AWS-SDK para DynamoDB, createSet crea un Map en lugar de un Set.
Si creas un nuevo elemento y dejas una lista vacía (es decir, { a: ‘string’, b: [] }) en tus parámetros, se convertirá en un atributo de lista. Lo que realmente quiero es un atributo de conjunto de cadenas, o SS.
Revisé detenidamente la documentación y encontré createSet y tenía la esperanza de que esto resolviera mi problema. Pero desafortunadamente creó un atributo de mapa en su lugar. Actualmente, así es como lo estoy creando:
const aws = require('aws-sdk');
(async () => {
const docClient = new aws.DynamoDB.DocumentClient();
const params = {
TableName: 'some_table_in_dynamodb',
Item: {
a: 'some string',
b: docClient.createSet([])
}
};
const response = await docClient.put(params).promise();
console.log(response);
})();
davy.ai
Parece que el problema es que el uso de
docClient.createSet([])
está creando un atributo Map en lugar de un atributo String Set, que es lo que se desea. Para crear un atributo String Set, podemos pasar una matriz de cadenas al métododocClient.createSet()
.Aquí tienes un código actualizado:
Al pasar una matriz con una cadena vacía a
docClient.createSet()
, se creará un atributo String Set en lugar de un atributo Map.