我不熟悉使用AWS,并且正在编写一些可以在给定一些keyAttributes的情况下将属性添加到所提供项目的属性。我可以使用它,但是我最终编写的代码对我来说看起来并不直观且愚蠢。 (我只是根据我在网上找到的文档建立的。)
我能够使用以下代码成功完成dynamoDB表中项目的基本更新:
final AttributeValue fulfilled = new AttributeValue().withBOOL(true);
final UpdateItemRequest updateItemRequest = new UpdateItemRequest()
.withTableName(tableName)
.withKey(keyAttributes)
.withUpdateExpression("SET fulfilled = :fulfilled")
.withExpressionAttributeValues(ImmutableMap.of(":fulfilled", fulfilled));
final UpdateItemResult result = dynamoClient.updateItem(updateItemRequest);
有什么我可以做的事情来简化为我要在这里做的准系统工作:仅向项目添加新属性“ fulfilled”,设置为true?
答案 0 :(得分:1)
UpdateItemRequest
必须始终包含表名和键属性。 (否则,DynamoDB将如何知道要更新的项目?)
不过,您可以通过摆脱ExpressionAttributeValues
来简化它,如下所示:
final UpdateItemRequest updateItemRequest = new UpdateItemRequest()
.withTableName(tableName)
.withKey(keyAttributes)
.withUpdateExpression("SET fulfilled = TRUE");
final UpdateItemResult result = dynamoClient.updateItem(updateItemRequest);