假设我在DynamoDB中有100个数据然后删除我必须执行循环的所有数据。那么有没有办法在没有for循环的情况下删除所有数据?
let dynamoDbObjectMapper = AWSDynamoDBObjectMapper.default()
for var key in 0 ..<100 {
let itemToDelete: CategoriesDB = CategoriesDB()
itemToDelete._index = key
dynamoDbObjectMapper.remove(itemToDelete, completionHandler:
{(error: Error?) -> Void in
if let error = error {
print(" Amazon DynamoDB Save Error: \(error)")
return
}
print("A Category was deleted.")
})
}
答案 0 :(得分:2)
如果要删除DynamoDB表中的所有数据,最好只删除表并再次创建,因为这不会花费写入容量单位。
答案 1 :(得分:0)
暂时忽略swift SDK,DynamoDB使用DeleteItem方法从表中删除单个项目,但它也有一个批处理方法。
除了DeleteItem,Amazon DynamoDB还支持BatchWriteItem 同时删除多个项目的操作。
问题是,我看不到通过BatchWriteItem访问swift SDK的方法。即使您可以使用BatchWriteItem,它一次只能处理25个项目,因此您仍然需要编写循环。
对不起它不是一个更完整的答案,但认为这可能有用。据我所知,没有一种简单的(单一)方法可以做到这一点。