Man*_*gni 6 amazon-web-services amazon-dynamodb
我正在从dynamodb表中删除一个dynamoDbMapper.delete(object)使用默认DynamoDBDeleteExpression 的不存在的记录
我期待出现某种异常,因为数据库中没有记录,但它什么也没做.它甚至没有返回类型,可以判断删除是成功还是失败.有没有办法添加一个删除表达式或某些东西,如果该项目不在数据库中,我的删除会抛出异常?
E.J*_*nan 10
它是按设计:
除非您指定条件,否则DeleteItem是幂等操作; 在同一项或属性上多次运行它不会导致错误响应.
来自:https: //docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html
可以利用 ReturnValues 来确定 delete 是否做了任何事情。如果ReturnValues.Attributes为空,则表示delete没有找到要删除的记录,此时可以抛出错误。JavaScript 中的示例:
async function deleteWithThrowIfNotExists() {
const dynamo = new AWS.DynamoDB.DocumentClient();
const parameters = {
Key: {
user: 'john'
},
ReturnValues: 'ALL_OLD',
TableName: 'users'
};
const response = await dynamo.delete(parameters).promise();
if (!response.Attributes) {
throw new Error('Cannot delete item that does not exist')
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3801 次 |
| 最近记录: |