【问题标题】:DynamoDB increment a key/valueDynamoDB 增加一个键/值
【发布时间】:2012-12-29 00:14:43
【问题描述】:

如果我有一个 DynamoDB 表,其中 UserID 作为键,数字作为值,我可以在单个操作中增加该数字/值吗?还是我需要将其读出、递增并重新写入?

谢谢

【问题讨论】:

    标签: amazon-dynamodb


    【解决方案1】:

    DynamoDB 支持原子计数器的概念。您只需使用 action: "ADD" 调用 update_item 即可自动增加项目的值。

    【讨论】:

    • 但这是不同的,它可以增加现有条目而不是 create_item,这在我看来是用户正在检查的内容......
    • 您可以在不存在的行上使用 action:ADD 调用 UpdateItem。它将在执行 ADD 操作之前创建行并将属性设置为 0。不需要 create_item
    • 谢谢@prestomation,这正是我希望听到的!
    • 如何将范围键设置为自动递增?
    【解决方案2】:

    正如其他人所说,您可以通过一个操作递增,但是现在不推荐使用“action: ADD”。当前实现此目的的方法是使用 UpdateExpression。我还假设 OP 意味着有一个数字 [属性] 的值需要增加。我正在调用属性 loginCount:

    dynamoDB.updateItem({
      TableName: "Users",
      Key: { "UserId": { S: "c6af9ac6-7b61" } },
      ExpressionAttributeValues: { ":inc": {N: "1"} },
      UpdateExpression: "ADD loginCount :inc"
    })
    

    【讨论】:

      【解决方案3】:

      如果您正在寻找类似 MySQL 的自动增量功能,那么不,这在 DynamoDB 中是不可能的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-05
        • 1970-01-01
        相关资源
        最近更新 更多