基于 DynamoDb 文档,为什么有人会使用 updateItem 而不是 putItem

  • PutItem - 将单个项目写入表。如果表中存在具有相同主键的项目,则操作替换该项目。对于计算预配置吞吐量消耗,重要的项目大小是两者中较大的一个。
  • UpdateItem - 修改表格中的单个项目。 DynamoDB 会考虑更新前后项目的大小。消耗的预配置吞吐量反射(reflect)了这些项目大小中较大的一个。即使您只更新项目属性的一个子集,UpdateItem 仍将消耗全部预配置吞吐量(“之前”和“之后”项目大小中的较大者)。
  • 最佳答案

    两者的主要区别在于,PutItem 会将 替换为 整个项目而 UpdateItem 会将 更新为 它。

    例如。

    我有一个项目,如:

    userId = 1
    Name= ABC
    Gender= Male
    

    如果我使用 PUT 项目
    UserId = 1
    Country = India
    

    这将替换 Name 和 Gender,现在新的 Item 是 UserId 和 Country。
    而如果你想从 Name = ABC to Name = 123 更新一个项目,你必须使用 UpdateItem

    您可以使用 Put 项目来更新它,但您需要发送所有参数,而不仅仅是要更新的参数,因为它会用新属性替换项目。(在内部,它删除项目并添加新项目)

    希望这是有道理的。

    关于amazon-web-services - DynamoDb PutItem 与 UpdateItem 之间的区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43667229/

    10-12 23:45