amazon-dynamodb - 如何仅基于分区键更新项目?
问题描述
我们的表有一个复合主键。在一些用例中,我们需要仅基于分区键来更新项目。
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 进行更新。
如果有不清楚的地方,请告诉我。很乐意进一步解释。
解决方案
DynamoDB 不支持一次更新多个项目。出于这个原因,除非您的表模式只有一个分区键而没有排序键,否则您不能只使用分区键来发出更新请求。
这可能不是您所希望的答案,但这就是 DynamoDB 的工作方式。您必须仔细考虑您的用例并选择有效的模式,或者考虑不同的数据库解决方案。
推荐阅读
- javascript - 跳过空对象或空对象以分配给猫鼬中的数组
- ios - 快速分页的 PromiseKit
- javascript - 为什么以前的背景颜色记录在变量 C 中?
- javascript - 令人困惑的 JavaScript 赋值语法错误
- java - 简单日期格式错误解析日期
- django - 哨兵日志跟踪器不能实时工作
- php - FPDF 图像功能从不同的扩展名给出错误
- netbeans - 如何更改 NetBeans 分析器使用的 Web 服务器?
- ios - 传递数据并显示该模型
- apache-kafka - KSQL AVRO FORMAT ISSUE for Kafka Connect Elastic Search:org.apache.kafka.connect.errors.DataException:de******ense