DynamoDB中的if_not_exists用于UpdateItem操作

6

我正在尝试一个非常简单的场景。我需要针对每一行维护一个计数器。我使用UpdateItem进行upsert而不是insert。

  1. 如果行不存在,则应仅设置计数器列的值
  2. 如果行存在,则应更新计数器。

第2个问题可以正常工作,但是对于第1个问题,它会抱怨属性不存在。我尝试了if_not_exists子句,但没有任何帮助。请有人指点我正确的方向吗?还分享如何在UpdateItem中使用if_not_exists子句。


1
搞定了。在upsert期间更新计数器时,使用了ADD操作而不是SET操作。 - Sumit Chawla
请问您能否给我提供这个问题的解决方案 - https://dev59.com/KqXja4cB1Zd3GeqPXNfM。 - manojpt
2个回答

8
你可以使用DynamoDb的更新表达式,如下所示:
SET #param = if_not_exists(#param, :num0) + :num1

其中:num0是默认值,:num1是要添加的数字。请注意,对字段param进行第一次DynamoDb更新操作后,其值将为:num0 + :num1


6

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接