Tengo un problema con una actualización en dynamoDB, al realizar la actualización en dyanamo me dice que no puedo usar la palabra clave clave
"message": "Valor proporcionado en ExpressionAttributeNames no utilizado en expresiones: claves: {#keyid}", "code": "ValidationException", "time": "2022-05-06T00:24:03.502Z",
Al usar los ExpressionAttributeNames debo relacionar la clave con otro nombre "Key" pero en la tabla su id se llama key y me genera el error anterior al actualizar este mi código.
function updateUser(key, sortkey, dateFiling) { try { let params = { TableName: env.getEnv(CTE.User), Key: { "#keyid": key , "sortkey": sortkey }, UpdateExpression: "set dateFiling = :dateFiling", ExpressionAttributeNames: { '#keyid': 'key' }, ExpressionAttributeValues: { ":dateFiling": dateFiling } }; await db.updateItem(params); console.log(params); } catch (error) { console.log('Error in updateUser %j:', error); } }mi duda es exactamente con los ExpressionAttributeNames ya que no toma el sobre keyid para referirse a la clave y no tener problema con el uso de la palabra reservada. Puede alguien ayudarme. por favor
El argumento Key acepta palabras clave reservadas :
Key: { "key": key , "sortkey": sortkey }, Las palabras clave reservadas están prohibidas en expresiones como UpdateExpression . DynamoDB se queja de que no está utilizando ExpressionAttributeNames en una expresión, lo cual es cierto. quitarlo