小编Lea*_*ner的帖子

使用 UpdateItemEnhancedRequest DynamoDb java sdk2 更新特定属性

我们有一个 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)

amazon-web-services amazon-dynamodb

4
推荐指数
1
解决办法
856
查看次数