我正在尝试一个非常简单的场景。我需要针对每一行维护一个计数器。我使用UpdateItem进行upsert而不是insert。
- 如果行不存在,则应仅设置计数器列的值
- 如果行存在,则应更新计数器。
第2个问题可以正常工作,但是对于第1个问题,它会抱怨属性不存在。我尝试了if_not_exists子句,但没有任何帮助。请有人指点我正确的方向吗?还分享如何在UpdateItem中使用if_not_exists子句。
我正在尝试一个非常简单的场景。我需要针对每一行维护一个计数器。我使用UpdateItem进行upsert而不是insert。
第2个问题可以正常工作,但是对于第1个问题,它会抱怨属性不存在。我尝试了if_not_exists子句,但没有任何帮助。请有人指点我正确的方向吗?还分享如何在UpdateItem中使用if_not_exists子句。
SET #param = if_not_exists(#param, :num0) + :num1
其中:num0
是默认值,:num1
是要添加的数字。请注意,对字段param
进行第一次DynamoDb更新操作后,其值将为:num0
+ :num1
。
搞定了。在upsert期间,使用ADD操作而不是SET操作来更新计数器。
http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.Modifying.html