amazon-dynamodb - 如何扫描 DynamoDB 表以在每个分区键中仅检索一项
问题描述
假设我有一个带有分区键“ID”和范围键“时间”的表,其中包含以下项目:
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 项已读
否则,唯一的方法就是不幸地扫描所有内容。
推荐阅读
- reactjs - 不能使用解构的道具 redux 动作
- macos - IOServiceGetMatchingServices() 热插拔后返回 nil hid 迭代器
- mysql - 如何在 SQL 存储过程中从表中选择内容到新表中?
- angular - 是否可以在 Angular Web 应用程序和 ionic 应用程序之间共享完整的代码库?
- html - 使用 ngFor recursivley 迭代 n 个对象
- javascript - 如何防止从我的工作场所 IP/位置在 Web 中执行一些 JS 代码?
- vbscript - 调用 VBScript 而不等到结束时可能出现语法错误
- python - FileNotFoundError: [Errno 2] 打包 PyPI 时
- java - 没有这样的元素:无法找到元素:当我使用 elementToBeClickable 方法时
- jquery - 延迟显示文本行