【问题标题】:Dynamodb Update Multiple Return ValuesDynamodb 更新多个返回值
【发布时间】:2018-02-17 22:44:12
【问题描述】:

有没有办法让 Dynamodb 更新返回旧值和新值?

类似:

updateItemSpec
    .withPrimaryKey("id", id)
    .withUpdateExpression(myUpdateExpression)
    .withNameMap(nameMap)
    .withValueMap(valueMap)
    .withReturnValues("UPDATED_NEW, UPDATED_OLD");   

【问题讨论】:

    标签: amazon-web-services aws-lambda amazon-dynamodb


    【解决方案1】:

    没有。

    您应该很容易通过返回UPDATED_OLD 来模拟这一点。您已经拥有在更新中设置的新值,因此请获取更新后的旧值,并使用它从值映射中提取新值。

    【讨论】:

    • 谢谢...但是,实际上我没有新的价值。因为 myUpdateExpression 类似于“SET myValue = myValue + incrementValue”。这就是为什么我希望 dynamo 返回 OLD 和 NEW 值;
    • 我明白了。但是那样的话,你还有更新前的值,你会知道增量是多少,那么你肯定可以计算出新的值吗?
    • 你说得对,我从 Dynamo 得到新值,然后我计算旧值...谢谢
    【解决方案2】:

    根据您要在何处使用数据,如果您在更新 DynamoDB 记录的代码主体中不需要它,您可以使用 DynamoDB streams 捕获表活动。您可以在表上配置AWS lambda trigger,以便在发生指定事件时调用 lambda,将此事件(在我们的示例中为流)传递给 lambda。由此,根据您设置流的方式,您可以访问记录的旧版本和新版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-19
      • 2014-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-02
      • 2020-07-01
      相关资源
      最近更新 更多