Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java AWS DynamoDB如何增加数字_Java_Amazon Web Services_Amazon Dynamodb_Dynamodb Queries - Fatal编程技术网

Java AWS DynamoDB如何增加数字

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

我想给一个数字加1,然后把新的数字取回来

我无法正确获取我的UpdateItemSpec。请帮忙。每个例子似乎都显示了一些不同的东西,但没有一个是有效的

这是我的密码:

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")