Amazon dynamodb DynamoDb Java API-计数器增量上不存在时插入

Amazon dynamodb DynamoDb Java API-计数器增量上不存在时插入,amazon-dynamodb,Amazon Dynamodb,我试图插入的项目,如果它不存在,并设置其计数器为1或增量计数器一,当它存在,但似乎不工作 以下是我迄今为止所做的工作: UpdateItemSpec updateItemSpec = new UpdateItemSpec() .withPrimaryKey("Id", Id) .withReturnValues(ReturnValue.ALL_NEW) .withUpdateExpression("set #c = if_not_exists(#c = :val, #c

我试图插入的项目,如果它不存在,并设置其计数器为1或增量计数器一,当它存在,但似乎不工作

以下是我迄今为止所做的工作:

UpdateItemSpec updateItemSpec = new UpdateItemSpec()
    .withPrimaryKey("Id", Id)
    .withReturnValues(ReturnValue.ALL_NEW)
    .withUpdateExpression("set #c = if_not_exists(#c = :val, #c + :val)")
    .withNameMap(new NameMap()
        .with("#c", "counter"))
    .withValueMap(new ValueMap()
        .withNumber(":val", 1));
当我将更新表达式更改为
set#c=#c+:val
时,它会更新现有项,但如果不存在,则不会插入新项


set#c=:val
似乎对exist和not exist都有效,但这不是我需要的。

您可以通过一个UpdateItem调用创建和更新项目。
UpdateExpression应该是
ADD#c:val
,因为DynamoDB在对尚不存在的项的ADD操作中假装一个数字的值为零。

在这里找到了答案这是正确的更新表达式ADD#c:val下面的问题,上面的as代码是:
。withUpdateExpression(“ADD#c:val)”)