我正在尝试在boto3中为DynamoDB使用update_item
功能。是否有可能在update_item中结合if_not_exists和list_append
我现在正在努力更新项目列表。如果列表尚不存在,我想创建一个新列表,否则追加到现有列表。
使用形式SET my_list = list_append(my_list, :my_value)
的UpdateExpression
返回错误“所提供的表达指的是不存在于项目存在的属性”如果列表不存在。
任何想法如何我将不得不修改我的UpdateExpression
?
感谢&问候, 费边
谢谢你的提示!非常整洁的解决方案。 – fabian
你有任何想法,如果这是受竞赛条件?我正在查看AWS文档,他们似乎没有任何锁定/事务(至少对于Python SDK)。它看起来像这样的代码可以a:从数据库中读取列表,b:追加新值,c:覆盖旧值,在此期间可以更改_could_。 –
我无法在文档中找到直接确认,但我希望单个UpdateItem操作是原子的,这是我在常见问题中发现的最接近的东西 - “您可以使用单个API调用在一行中增加或减少数字属性。同样,你可以原子地添加或删除设置,列表或地图“,请参阅https://aws.amazon.com/dynamodb/faqs/ –