在 DynamoDB with Java 中查询最大属性值



鉴于我的 DynamoDB 有一列"BlockNumber",如何编写 Java QuerySpec 以查找数据库中的 MAX 块号? (它配置为 GSI。

通常,您的 GSI 将具有分区键和排序键,就像常规 DynamoDB 表一样。您将针对已知分区键发出查询,并设置 ScanIndexForward=false 和 Limit=1,因此它将只返回一个项目,它将是具有匹配分区键和排序键最大值的项目。当 ScanIndexForward 为 false 时,DynamoDB 会按排序键值以相反的顺序读取项目。

如果数据是不可变的,最好的选择是有一个单独的记录来保存聚合值。每当添加可能更改最大值的项目时,都会更新聚合记录。实现此目的的最佳方法是使用 DynamoDB 流对聚合记录执行更新。将全局二级索引用于具体化聚合查询

最新更新