我们有一个 DynamoDB 表,它有一个属性计数器,它将基于一个事件由多个 lambda 异步递减。我正在尝试使用 UpdateItemEnhancedRequest(使用 Dynamodb 增强型客户端。 - JAVA SDK 2)更新计数器。我能够建立更新计数器的条件,但它更新整个项目而不仅仅是计数器。有人可以指导如何使用 DynamoDb Enhanced Client 更新单个属性吗?
代码示例
public void update(String counter, T item) {
AttributeValue value = AttributeValue.builder().n(counter).build();
Map<String, AttributeValue> expressionValues = new HashMap<>();
expressionValues.put(":value", value);
Expression myExpression = Expression.builder()
.expression("nqctr = :value")
.expressionValues(expressionValues)
.build();
UpdateItemEnhancedRequest<T> updateItemEnhancedRequest =
UpdateItemEnhancedRequest.builder(collectionClassName)
.item(item)
.conditionExpression(myExpression)
.build();
getTable().updateItem(updateItemEnhancedRequest);
}
Run Code Online (Sandbox Code Playgroud)