如何仅根据分区键更新项目?
How to update items based on just the partition key?
我们的 table 有一个复合主键。在一些用例中,我们需要仅根据分区键更新项目。
partitionKey sortKey
------------ ---------
10020525 208025117-xxxxx-153068323-208025401
10020525 208025117-208025475-153068323-208025401
以下是我目前的更新方式:(使用 Java)
UpdateItemRequest updateItemRequest = new UpdateItemRequest().withTableName("table").withKey(attMap);
UpdateItemResult updateItemResult = amazonDynamoDB.updateItem(updateItemRequest);
'attMap' 已经有 'partitionKey' 和 'sortKey'。因此,它确实负责更新与分区和排序键匹配的记录。
在少数情况下(排序键中有 'xxxxx'),我想仅根据分区键进行更新。
如果有什么不清楚的地方,请告诉我。很乐意进一步解释。
DynamoDB 不支持一次更新多个项目。因此,除非您的 table 模式只有分区键而没有排序键,否则您不能只使用分区键发出更新请求。
这可能不是您希望得到的答案,但这就是 DynamoDB 的工作方式。您必须仔细考虑您的用例并选择有效的模式,或者考虑不同的数据库解决方案。
我们的 table 有一个复合主键。在一些用例中,我们需要仅根据分区键更新项目。
partitionKey sortKey
------------ ---------
10020525 208025117-xxxxx-153068323-208025401
10020525 208025117-208025475-153068323-208025401
以下是我目前的更新方式:(使用 Java)
UpdateItemRequest updateItemRequest = new UpdateItemRequest().withTableName("table").withKey(attMap);
UpdateItemResult updateItemResult = amazonDynamoDB.updateItem(updateItemRequest);
'attMap' 已经有 'partitionKey' 和 'sortKey'。因此,它确实负责更新与分区和排序键匹配的记录。
在少数情况下(排序键中有 'xxxxx'),我想仅根据分区键进行更新。
如果有什么不清楚的地方,请告诉我。很乐意进一步解释。
DynamoDB 不支持一次更新多个项目。因此,除非您的 table 模式只有分区键而没有排序键,否则您不能只使用分区键发出更新请求。
这可能不是您希望得到的答案,但这就是 DynamoDB 的工作方式。您必须仔细考虑您的用例并选择有效的模式,或者考虑不同的数据库解决方案。