は、次の表を考えてみたすべての項目を削除します。DynamoDBのは:同じハッシュキー
Table (documentId : Hash Key, userId: Range Key)
は、どのように私は、好ましくは、アイテムを取得することなく、同じdocumentId
とを持つすべての項目を削除するコードを記述することができます。
は、次の表を考えてみたすべての項目を削除します。DynamoDBのは:同じハッシュキー
Table (documentId : Hash Key, userId: Range Key)
は、どのように私は、好ましくは、アイテムを取得することなく、同じdocumentId
とを持つすべての項目を削除するコードを記述することができます。
現在、ハッシュキーを渡すだけですべてのアイテムを削除することはできません。ハッシュ+レンジが必要なアイテムを削除するには、それがユニークになるためです。
You have to know both your (hash + range) to delete the item.
は明らかに我々は両方のハッシュ(パーティションキー)を渡すとしなければならないことを言う「KEY」の説明をお読みくださいDynamoDBのドキュメントから参照リンクは、ある範囲(ソートキー)アイテムを削除します。
ハッシュキーのみを削除する場合は、最初にレコードを照会してから、batchDelete
を使用してすべてのレコードを削除する必要があります。
HashMap<String, AttributeValue> eav = new HashMap<String, AttributeValue>();
eav.put(":v1", new AttributeValue().withS(value));
DynamoDBQueryExpression<DocumentTable> queryExpression = new DynamoDBQueryExpression<DocumentTable>()
.withKeyConditionExpression("documentId = :v1")
.withExpressionAttributeValues(eav);
List<DocumentTable> ddbResults = dynamoDBMapper.query(DocumentTable.class, queryExpression);
dynamoDBMapper.batchDelete(ddbResults);
私はdeleteItem
は一度に一つだけのアイテムを削除し、両方のハッシュキーとキー範囲は、このために指定する必要があることをここで呼び出すしたいと思います。
参照番号 – Hans
@Hansと言えば、私は非常に感謝しています。私は答えを更新しました。 –
これは私を驚かせました。私は、パーティションキーだけを指定することによってパーティション全体を削除するオプションを持つCassandraについてよく知っています。 –