假设我有一个带有分区键"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项
否则,唯一的方法就是不幸地扫描所有内容。