UpdateItem 上的 DynamoDB if_not_exists

Sum*_*wla 6 amazon-web-services amazon-dynamodb

我正在尝试一个非常简单的场景。我需要每行维护一个计数器。我正在使用 UpdateItem 进行更新插入而不是插入。

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

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

Vla*_*iev 8

您可以使用 DynamoDb 更新表达式,如下所示:

SET #param = if_not_exists(#param, :num0) + :num1
Run Code Online (Sandbox Code Playgroud)

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


Sum*_*wla 6

弄清楚了。在更新插入期间使用 ADD 操作而不是 SET 操作来更新计数器

http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.Modifying.html