Boto3でDynamoDBの_update_item
_機能を使用しようとしています。
現在、アイテムのリストを更新するのに苦労しています。リストがまだ存在しない場合は新しいリストを作成し、それ以外の場合は既存のリストに追加します。
SET my_list = list_append(my_list, :my_value)
の形式のUpdateExpression
を使用すると、エラーが返されます"指定された式は、アイテムに存在しない属性を参照しています"リストが存在しない場合まだ。
UpdateExpression
をどのように変更しなければならないか考えていますか?
ありがとう、よろしく、ファビアン
list_append(if_not_exists())
構造を使用できます。
UpdateExpression:
'SET my_list2 = list_append(if_not_exists(my_list2, :empty_list), :my_value)'
ExpressionAttributeValues:
{ ":my_value":[{"S":"test"}], ":empty_list":[] }
Borisソリューションの代わりに、リストのデータ型の代わりに set を使用し、ADDキーワードを使用することもできます。
追加すると、更新式はADD setName :s
式の属性値は次のようになります。{":s": {"SS":["First", "Second"]}}