【发布时间】:2022-12-10 04:01:04
【问题描述】:
在我的 dynamodb 表中,我有一个场景,当我向表中添加一个新项目时,我还需要为表中的另一个条目增加一个计数器。
例如,当 USER#1 关注 USER#2 时,我想增加 USER#2 的关注者数量。
| HashKey | RangeKey | counter |
|---|---|---|
| USER1 | USER2 | |
| USER3 | USER2 | |
| USER2 | USER2 | 2 |
我不想使用自动增量,因为我想控制增量的发生方式。
当然,如果我对 dynamodb 进行两次更新调用,一切都会按预期进行。一个用于创建用户之间的关系,另一个用于更新其他用户的计数。
问题是,进行两次这样的调用是否是一种好方法,或者 transactWrite 是否是更好的选择。
如果是这样,我如何使用 transactwrite api 进行增量。
我可以使用以下方法添加项目。但我不确定如何增加
"TransactItems": [
{
"Put": {
"TableName": "Table",
"Item": {
"hashKey": {"S":"USER1"},
"rangeKey": {"S":"USER2"}
}
}
},
{
"Update": {
"TableName": "TABLE",
"Key": {
"hashKey": {"S":"USER2"},
"rangeKey": {"S":"USER2"}
},
"ConditionExpression": "#cefe0 = :cefe0",
"ExpressionAttributeNames": {"#cefe0":"counter"},
"ExpressionAttributeValues": ?? how do I increment here
}
}
]
【问题讨论】:
标签: amazon-web-services amazon-dynamodb nosql