我在dynamodb中有一个表,其中键作为单词,值为cou。 word是我的哈希键,cou是属性键。我试图将我的一个单词值更新为另一个值。我得到了这个例外。
com.amazonaws.AmazonServiceException: The provided key element does not match the schema
我正在做的是在下面的代码中。有什么建议。
java.util.Map<String, AttributeValue> item = new HashMap<String, AttributeValue>();
item.put("word", new AttributeValue().withS("TimeZone"));
java.util.Map<String, AttributeValue> expressionAttributeValues = new HashMap<String, AttributeValue>();
expressionAttributeValues.put(":val1", new AttributeValue().withN("1"));
expressionAttributeValues.put(":val2", new AttributeValue().withN("12"));
ReturnValue returnValues = ReturnValue.ALL_NEW;
UpdateItemRequest updateItemRequest = new UpdateItemRequest()
.withTableName(tableName)
.withKey(item)
.withUpdateExpression("add cou :val1 set NewAttribute=:val2")
.withExpressionAttributeValues(expressionAttributeValues)
.withReturnValues(returnValues);
UpdateItemResult result = client.updateItem(updateItemRequest);
答案 0 :(得分:1)
你提到“单词”是你的键,“cou”是你的“属性键”。我假设属性键你的意思是范围键。如果模式中同时包含哈希和范围键,则需要在键哈希映射(“items”)中指定它们,不能仅使用哈希键进行更新。