2012-02-04 59 views
5

私はDynamo DBの項目から属性を削除する最良の方法を見つけようとしています。以下は、私が試したものですが、私は、スレッド「メイン」ステータスコードのいずれかでタイプNまたはSDynamoDBの属性を削除する

例外ではサポートされていないことがDELETE言って例外を取得:400、AWSサービス:AmazonDynamoDB、AWSリクエストID :09MRO4PVTJ8IK6OHLKSM551REJVV4KQNSO5AEMVJF66Q9ASUAAJG、AWSのエラーコード:にValidationException、AWSのエラーメッセージ:1つの以上のパラメータ値が無効であった。アクションはcom.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:544)のタイプN のためにサポートされていないDELETE でcom.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:284) com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:169) at com.amazonaws.services.dynamodb.AmazonDynamoDBCl混乱の> com.amazonaws.services.dynamodb.AmazonDynamoDBClient.updateItemでient.invoke(AmazonDynamoDBClient.java:675) (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でそれを行う適切な方法を見つけることができませんでした。

助けていただければ幸いです。

+1

実際の例外を掲示することができます –

+0

@Layble:あなた自身で解決することができてうれしいです - 解決策を回答として投稿して受け入れることができますか?最初の場所で本当の未解決の問題であった限り、あなた自身の質問に続くことは、完全に合理的かつ望ましいものです。ありがとう:) –

答えて

9

私はすでにこれを試みたが、NULL値をAttributeValueのを置き換えることによって、それが動作誓ったかもしれない:

Key pk = new Key(new AttributeValue().withN(Long.toString(123))); 
AttributeValueUpdate avu = new AttributeValueUpdate(null, "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); 
+0

あなたの解決策をフォローアップのための+1、ありがとう! –

3

これも動作します。

Table table = dynamoDB.getTable("users"); 
table.updateItem(new PrimaryKey("<MY HASH KEY NAME>", <MY HASH VALUE>), new AttributeUpdate("columnToRemove").delete()); 

またはyou can even use Expressionsアイテムアップデートです。

REMOVE - アイテムから1つ以上の属性を削除します。

関連する問題