有时候,DeleteItemCommand 命令可能无法按预期工作,尤其是在使用条件表达式时。以下是一个示例代码,可以帮助解决此问题:
const { DynamoDBClient, DeleteItemCommand } = require("@aws-sdk/client-dynamodb");
const client = new DynamoDBClient({ region: "us-west-2" });
async function deleteItem(tableName, key) {
const command = new DeleteItemCommand({
TableName: tableName,
Key: key,
ConditionExpression: 'attribute_exists(PK)' // example condition expression
});
try {
await client.send(command);
console.log("DeleteItem succeeded:", key);
} catch (err) {
console.error(err);
}
}
在上面的代码中,我们使用了 aws-sdk/client-dynamodb 中的 DeleteItemCommand,同时传递了 TableName 和 Key 参数。我们还使用了 ConditionExpression 条件表达式,以确保只有在 PK 属性存在时才会执行删除操作。根据您的需求,您可以将 ConditionExpression 替换为您自己的表达式。
在执行命令后,我们使用 try-catch 块检测是否有错误发生,并输出适当的日志信息。
使用上述代码,您可以避免 DeleteItemCommand 命令无法按预期工作的问题,并确保只有在满足给定条件时才会执行删除操作。