19

如果我有一个 DynamoDB 表,其中 UserID 作为键,数字作为值,我可以在单个操作中增加该数字/值吗?还是我需要把它读出来,增加并写回去?

谢谢

4

3 回答 3

26

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

于 2012-12-29T00:28:25.310 回答
18

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

dynamoDB.updateItem({
  TableName: "Users",
  Key: { "UserId": { S: "c6af9ac6-7b61" } },
  ExpressionAttributeValues: { ":inc": {N: "1"} },
  UpdateExpression: "ADD loginCount :inc"
})
于 2019-09-14T13:10:42.377 回答
-7

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

于 2013-01-07T18:32:30.937 回答