是否可以在 update_item 中合并 if_not_exists 和 list_append
Is it possible to combine if_not_exists and list_append in update_item
我正在尝试在 boto3 中使用 DynamoDB 的 update_item
功能。
我现在正在努力更新项目列表。如果列表尚不存在,我想创建一个新列表,否则附加到现有列表。
使用 SET my_list = list_append(my_list, :my_value)
returns 形式的 UpdateExpression
错误 “提供的表达式引用了项目中不存在的属性” 如果列表还不存在。
知道如何修改我的 UpdateExpression
吗?
可以使用list_append(if_not_exists())
构造。
更新表达式:
'SET my_list2 = list_append(if_not_exists(my_list2, :empty_list), :my_value)'
表达式属性值:
{ ":my_value":{"L": [{"S":"test"}]}, ":empty_list":{"L":[]} }
Boris 解决方案的替代方法是使用 set 而不是列表数据类型并使用 ADD 关键字,它完全符合您的要求。
添加后,更新表达式变为:ADD setName :s
表达式属性值可以是这样的:{":s": {"SS":["First", "Second"]}}
我正在尝试在 boto3 中使用 DynamoDB 的 update_item
功能。
我现在正在努力更新项目列表。如果列表尚不存在,我想创建一个新列表,否则附加到现有列表。
使用 SET my_list = list_append(my_list, :my_value)
returns 形式的 UpdateExpression
错误 “提供的表达式引用了项目中不存在的属性” 如果列表还不存在。
知道如何修改我的 UpdateExpression
吗?
可以使用list_append(if_not_exists())
构造。
更新表达式:
'SET my_list2 = list_append(if_not_exists(my_list2, :empty_list), :my_value)'
表达式属性值:
{ ":my_value":{"L": [{"S":"test"}]}, ":empty_list":{"L":[]} }
Boris 解决方案的替代方法是使用 set 而不是列表数据类型并使用 ADD 关键字,它完全符合您的要求。
添加后,更新表达式变为:ADD setName :s
表达式属性值可以是这样的:{":s": {"SS":["First", "Second"]}}