amazon-web-services - 在 Dynamodb 中使用 2 个索引运行 GET 查询
问题描述
我有一个 dynamodb 表,如下所示:
PlaceId (String) - Partition Key
PersonName (String)
startTime (Number)
endTime (Number)
现在,我想运行查询,列出给定时间范围和给定 PlaceId 之间的所有 Person 名称。
我正在考虑将 startTime 和 endTime 作为索引,以 PlaceId 作为 HashKey,但我不确定如何形成一个同时适用于 2 个索引的查询。知道我该怎么做吗?或者任何其他更好的方法来做到这一点?
解决方案
不,您不能在开始和结束时拥有索引并在单个 DDB 查询中同时使用这两种索引......
您可以做的最好的事情,将 startTime 作为排序键,然后您可以在 endTime 上进行过滤
但请注意,您仍然需要支付 startTime 在您的范围内读取所有记录的费用,过滤只是在将数据返回给您之前丢弃记录。
推荐阅读
- azure-log-analytics - Kusto 按类型而不是名称查询多个资源
- python - 在列表中使用 2 个循环后,第一个元素会在 Python 中自动从中删除
- reactjs - 我是编程新手,我试图安装反应
- flutter - 如何存根不属于某个类的函数
- python-3.x - 每次我运行 exe 都会创建新文件?
- java - 有没有办法处理 org.springframework.dao.DataIntegrityViolationException 在 Spring Boot 的 CrudRepository 的 saveAll 中的唯一约束?
- c - 使用“make all”会导致通用 ELF 中的重定位(EM:62)
- javascript - 如何使用javascript正则表达式查找包含后缀为“xyz”的数字的字符串?
- events - 什么是 Solidity 事件
- actions-on-google - Google 操作无法读取错误响应并顺利结束会话