在dynamodb中是否有任何api来更新批次的项目。有一个api可以批量编写新项目(BatchWriteItem)并使用UpdateItem更新单个项目。但是可以在一次通话中更新多个项目吗?
答案 0 :(得分:19)
我现在知道这是一个老问题,但是DynamoDB最近添加了一个支持更新的Transaction api:
Update —启动UpdateItem操作以编辑现有项的属性,或者将新项添加到表(如果尚不存在)。使用此操作可以有条件地或无条件地添加,删除或更新现有项目的属性。
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/transaction-apis.html
答案 1 :(得分:13)
目前DynamoDB中没有可用的批量更新项API。
答案 2 :(得分:1)
BatchWriteItem无法更新项目。要更新项目,请使用UpdateItem操作。 BatchWriteItem操作在一个或多个表中放置或删除多个项目
参考:http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchWriteItem.html
答案 3 :(得分:1)
我为此目的使用DynamoDBMapper.batchSave(Iterable<? extends Object> objectsToSave)
。
答案 4 :(得分:1)
当前没有批量更新,您可以使用一个更新Item调用,并在其上进行工作流,例如AWS SWF或AWS step函数
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html
答案 5 :(得分:0)
我使用dynamoDB更新触发器,然后制作了一个模板,该模板告诉我应该修改哪些项目,将它们放在队列中,并且它们读取队列中的消息以逐个更新