UpdateItem上的DynamoDB if_not_exists

时间:2016-04-18 22:43:33

标签: amazon-web-services amazon-dynamodb

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

  1. 如果行不存在,则只应设置计数器列的值
  2. 如果存在行,则应更新计数器。
  3. 2工作正常,但对于1,它抱怨属性不存在。我在没有任何帮助的情况下尝试了if_not_exists子句。有人可以指出我正确的方向吗?还分享了如何使用UpdateItem的if_not_exists子句

2 个答案:

答案 0 :(得分:2)

想出来。在upsert期间使用ADD操作代替SET操作来更新计数器

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

答案 1 :(得分:0)

您可以像这样使用 DynamoDb 更新表达式:

SET #param = if_not_exists(#param, :num0) + :num1

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