如何扫描DynamoDB表,以便在每个分区键中只检索一个项



假设我有一个带有分区键"ID"和范围键"Time"的表,其中包含以下项目:

ID  | Time | Data
------------------
A   | 1    | abc
A   | 2    | def
B   | 2    | ghi
B   | 3    | jkl

我只想扫描每个分区中时间值最高的一个项目。所以扫描的结果应该是:

ID  | Time | Data
------------------
A   | 2    | def
B   | 3    | jkl

DynamoDB的扫描功能可以做到这一点吗?(我想避免扫描所有内容,并自己进行此类过滤(。

如果您只想获取几个IDs及其最高的Time,您可以使用反向索引进行查询,因此对于每个ID,您将只读取1项。但为此,您需要一个现有的ID列表。

因此,对于每个ID,都会有:

  • 1个查询
  • 已读取1项

否则,唯一的方法就是不幸地扫描所有内容。

最新更新