我试图找出从 Dynamo DB 中的项目中删除属性的最佳方法。下面是我尝试过的,但我得到一个异常,说 N 或 S 类型都不支持 DELETE。
线程“主”状态代码中的异常:400,AWS 服务:AmazonDynamoDB,AWS 请求 ID:09MRO4PVTJ8IK6OHLKSM551REJVV4KQNSO5AEMVJF66Q9ASUAAJG,AWS 错误代码:ValidationException,AWS 错误消息:一个或多个参数值无效:类型 N 不支持操作 DELETE com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:544) 在 com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:284) 在 com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:169)在 >com.amazonaws.services.dynamodb.AmazonDynamoDBClient.invoke(AmazonDynamoDBClient.java:675) 在 >com.amazonaws.services.dynamodb.AmazonDynamoDBClient.updateItem(AmazonDynamoDBClient.java:371)
Key pk = new Key(new AttributeValue().withN(Long.toString(123)));
AttributeValueUpdate avu = new AttributeValueUpdate(new AttributeValue().withN("555"), "DELETE");
Map<String, AttributeValueUpdate> m = new HashMap<String, AttributeValueUpdate>();
m.put(String.valueOf(555), avu);
UpdateItemRequest uir = new UpdateItemRequest("users", pk, m);
dynamoDB.updateItem(uir);
混淆的一点是为什么属性值对于删除很重要。我真的很想删除属性名称和任何关联的值,但在 SDK 中找不到合适的方法来执行此操作。
帮助将不胜感激。