38

dynamo DB に挿入しようとしています。ハッシュ キーが既に DB に存在する場合、putItem 関数を呼び出すとどうなりますか? PutItemResult オブジェクトには、重複したハッシュ エントリが試行されたかどうかを示す何かが含まれていますか? 使用しているハッシュ キーを持つエントリがあるかどうかを確認するために、別のクエリを実行することは避けたいと考えています。

4

2 に答える 2

54

既存の主キーにアイテムを挿入すると、「期待値」を使用しない限り上書きされます。公式ドキュメントの紹介は次のとおりです。

http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/API_PutItem.html

新しいアイテムを作成するか、古いアイテムを新しいアイテム (すべての属性を含む) に置き換えます。指定されたテーブルに同じ主キーを持つ項目が既に存在する場合、新しい項目は既存の項目を完全に置き換えます。条件付きプット (指定された主キーを持つアイテムが存在しない場合は新しいアイテムを挿入する) を実行したり、特定の属性値がある場合は既存のアイテムを置き換えることができます。

ノート

新しいアイテムが既存のアイテムを置き換えないようにするには、主キー属性に対して Exists を false に設定して条件付き put 操作を使用します。

それ以外の場合は、UpdateItem既存のアイテムのフィールドを更新するために使用することもできます: http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/API_UpdateItem.html

于 2012-09-17T13:50:02.793 に答える
3

挿入前にそこにあった値の PutItemResult.getAttributes からマップを返す「withReturnValues(ReturnValue.ALL_OLD)」を使用できます。

PutItemResult.getAttributes が null を返す場合、それは新しいエントリです。

于 2014-09-06T19:44:18.717 に答える