Java AWS DynamoDB如何增加数字
我想给一个数字加1,然后把新的数字取回来 我无法正确获取我的UpdateItemSpec。请帮忙。每个例子似乎都显示了一些不同的东西,但没有一个是有效的 这是我的密码:Java AWS DynamoDB如何增加数字,java,amazon-web-services,amazon-dynamodb,dynamodb-queries,Java,Amazon Web Services,Amazon Dynamodb,Dynamodb Queries,我想给一个数字加1,然后把新的数字取回来 我无法正确获取我的UpdateItemSpec。请帮忙。每个例子似乎都显示了一些不同的东西,但没有一个是有效的 这是我的密码: AmazonDynamoDBClient dbClient = new AmazonDynamoDBClient( new BasicAWSCredentials("SECRET", "SECRET") ); dbClient.setRegion(Region.getRegion(Regions.from
AmazonDynamoDBClient dbClient = new AmazonDynamoDBClient(
new BasicAWSCredentials("SECRET", "SECRET")
);
dbClient.setRegion(Region.getRegion(Regions.fromName("us-west-1")));
DynamoDB dynamoDB = new DynamoDB(dbClient);
Table table = dynamoDB.getTable("NumTable");
GetItemSpec spec = new GetItemSpec()
.withPrimaryKey("PKey","OrderNumber");
Item item = table.getItem(spec);
logger.info(item.toJSONPretty());
UpdateItemSpec updateItemSpec = new UpdateItemSpec()
.withPrimaryKey("Pkey",
"OrderNumber")
.withReturnValues("UPDATED_NEW")
.withUpdateExpression("ADD #k :incr")
.withNameMap(new NameMap().with("#k", "NumVal"))
.withValueMap(
new ValueMap()
.withNumber(":incr", 1));
//.withString(":incr", "{N:\"1\"}"));
//I've tried a million other ways too!
UpdateItemOutcome outcome = table.updateItem(updateItemSpec);
logger.info(outcome.getItem().toJSONPretty());
Console显示第一个让部件工作:
Sat Nov 09 00:46:07 UTC - 2019-11-09 00:46:07 f1475303-7585-4804-8a42-2e0a9b16b1dc INFO Commission:88 - {
Sat Nov 09 00:46:07 UTC - "NumVal" : 200000,
Sat Nov 09 00:46:07 UTC - "PKey" : "OrderNumber"
Sat Nov 09 00:46:07 UTC - }
但更新部分给出了此错误(除其他错误外):
我真的觉得关键元素与模式匹配:'(
以下是来自我的AWS控制台的图片:
我觉得您的实现很好。错误是由于UpdateItemSpec代码中的键入错误造成的
UpdateItemSpec updateItemSpec = new UpdateItemSpec()
.withPrimaryKey("Pkey",
"OrderNumber")
输入错误是“Pkey”。它应该是“Pkey”,这就是它在GetItemSpec代码中工作的原因。我觉得您的实现很好。错误是因为UpdateItemSpec代码中的输入错误
UpdateItemSpec updateItemSpec = new UpdateItemSpec()
.withPrimaryKey("Pkey",
"OrderNumber")
输入错误是“Pkey”。它应该是“Pkey”,这就是它在GetItemSpec代码中工作的原因。Wowwww…我应该相信错误…我提供的键元素与架构不匹配!!wowww…我应该相信错误…我提供的键元素与架构不匹配!!
UpdateItemSpec updateItemSpec = new UpdateItemSpec()
.withPrimaryKey("Pkey",
"OrderNumber")