0

PHP SDK2 を使用して条件付きの updateItem 呼び出しを実行しようとしていますが、文字列セット内の単一の値のみをチェックする方法がわかりません。

例: dynamoDB に設定された文字列があります。

{"a","b","c"}

updatedItem 呼び出しを実行し、それらの値の 1 つを削除したいのですが、値が存在しない場合はエラーになります。したがって、上記のセットから「d」を削除しようとした場合、文字列セットに「d」が存在しないという事実を黙って無視するだけでなく、dynamoDB にエラーをスローさせたいと考えています。

私はもう試した:

    'Expected' => array(
        myAttribute => array(
            'Exists' => true,
            'Value' => array(Type::STRING_SET => array("d"))
        )
     )

ただし、値がたとえば「a」であっても、これは失敗します。その理由は、dynamoDB が、セット内の 1 つの値だけでなく、セット全体を検証する必要があると考えているためだと思います。

条件付きプットを実行して、セット内の単一の値のみを検証する方法はありますか?

getItem 呼び出しを実行して、配列として設定された文字列を取得し、独自のチェックを実行できますが、可能であれば、すべてを 1 回の呼び出しで実行したいと考えています。

前もって感謝します

4

1 に答える 1

1

UpdateItemを見ると、DynamoDB が値全体を見ており、セット内の値に基づく条件を設定できないことが示されているようです。

これを実行できるかどうかについて確実な確認が必要な場合、または機能のリクエストを行いたい場合は、公式の DynamoDB フォーラムに投稿します。

于 2013-06-24T17:09:58.147 に答える