¿Podemos eliminar un elemento en DynamoDB utilizando un GSI mediante el kit de desarrollo de AWS?
Tengo una tabla con GSI y estoy intentando eliminar un elemento usando GSI de la siguiente manera. Sin embargo, obtengo el siguiente error.
“El elemento clave proporcionado no coincide con el esquema”.
He intentado consultar utilizando la siguiente palabra clave y funcionó.
Entonces ya confirmé que el elemento clave proporcionado es correcto.
Intenté buscar si la operación de eliminación por GSI es posible o no, pero no pude encontrar una buena documentación.
¿Alguien podría decirme cuál es el mejor enfoque para eliminar un elemento usando GSI?
async function deleteProject(projectDB:string,projectId:string):Promise<any>{
const params={
TableName:projectDB,
IndexName:'projectId-index',
Key:{
'projectId':projectId,
},
ExpressionAttributeNames: { '#a': 'projectId' },
ExpressionAttributeValues: {"val": projectId},
ConditionExpression:"#a = :val",
}
const result=await db.delete(params).promise();
console.log('result',result);
return result;
}
davy.ai
El mensaje de error implica que el elemento clave proporcionado en el objeto
Key
no coincide con el esquema de la tabla de la que estás intentando eliminar. Por favor, asegúrate de que el atributoprojectId
sea la clave primaria en tu GSIprojectId-index
. Puedes verificar el esquema de tu tabla yendo a la consola AWS DynamoDB y mirando la pestaña “Detalles de la tabla”.Suponiendo que tu atributo
projectId
es de hecho la clave primaria de tu GSIprojectId-index
, verifica los valores delprojectId
que estás pasando a la funcióndeleteProject
con los datos de tu tabla. Es posible que estés pasando un valor que no existe en el atributo indexadoprojectId
.En cuanto a tu pregunta sobre el mejor enfoque para eliminar un elemento utilizando un GSI, tu código actual parece correcto. Estás especificando el nombre del GSI utilizando la propiedad
IndexName
y luego proporcionando los atributos clave en el objetoKey
. Esto debería funcionar siempre y cuando los elementos clave coincidan con el esquema del GSI.