Si tuviera que crear un nuevo elemento y dejar una lista vacía (es decir, { a: 'string', b: [] } en sus parámetros, lo convertirá en un atributo de lista. Lo que realmente quiero es un atributo de conjunto de cadenas , o SS.
Busqué más en la documentación y encontré createSet y tenía la esperanza de que esto resolvería 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); })();Obtuve la solución al jugar con la interfaz de usuario en DynamoDB: la lista NO PUEDE estar vacía; de lo contrario, la convertirá en un atributo de mapa. para solucionar esto, simplemente agregue una cadena vacía.
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(['']) // ADD STRING FOR SS ATTRIBUTE } }; const response = await docClient.put(params).promise(); console.log(response); })();