首页 > 解决方案 > 如何仅基于分区键更新项目?

问题描述

我们的表有一个复合主键。在一些用例中,我们需要仅基于分区键来更新项目。

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”),我想仅基于 partitionKey 进行更新。

如果有不清楚的地方,请告诉我。很乐意进一步解释。

标签: amazon-dynamodbdynamodb-queries

解决方案


DynamoDB 不支持一次更新多个项目。出于这个原因,除非您的表模式只有一个分区键而没有排序键,否则您不能只使用分区键来发出更新请求。

这可能不是您所希望的答案,但这就是 DynamoDB 的工作方式。您必须仔细考虑您的用例并选择有效的模式,或者考虑不同的数据库解决方案。


推荐阅读