【发布时间】:2012-12-29 00:14:43
【问题描述】:
如果我有一个 DynamoDB 表,其中 UserID 作为键,数字作为值,我可以在单个操作中增加该数字/值吗?还是我需要将其读出、递增并重新写入?
谢谢
【问题讨论】:
标签: amazon-dynamodb
如果我有一个 DynamoDB 表,其中 UserID 作为键,数字作为值,我可以在单个操作中增加该数字/值吗?还是我需要将其读出、递增并重新写入?
谢谢
【问题讨论】:
标签: amazon-dynamodb
DynamoDB 支持原子计数器的概念。您只需使用 action: "ADD" 调用 update_item 即可自动增加项目的值。
【讨论】:
正如其他人所说,您可以通过一个操作递增,但是现在不推荐使用“action: ADD”。当前实现此目的的方法是使用 UpdateExpression。我还假设 OP 意味着有一个数字 [属性] 的值需要增加。我正在调用属性 loginCount:
dynamoDB.updateItem({
TableName: "Users",
Key: { "UserId": { S: "c6af9ac6-7b61" } },
ExpressionAttributeValues: { ":inc": {N: "1"} },
UpdateExpression: "ADD loginCount :inc"
})
【讨论】:
如果您正在寻找类似 MySQL 的自动增量功能,那么不,这在 DynamoDB 中是不可能的。
【讨论】: