首页 > 解决方案 > 在 Dynamodb 中使用 2 个索引运行 GET 查询

问题描述

我有一个 dynamodb 表,如下所示:

PlaceId (String) - Partition Key
PersonName (String)
startTime (Number)
endTime (Number)

现在,我想运行查询,列出给定时间范围和给定 PlaceId 之间的所有 Person 名称。

我正在考虑将 startTime 和 endTime 作为索引,以 PlaceId 作为 HashKey,但我不确定如何形成一个同时适用于 2 个索引的查询。知道我该怎么做吗?或者任何其他更好的方法来做到这一点?

标签: amazon-web-servicesamazon-dynamodb

解决方案


不,您不能在开始和结束时拥有索引并在单个 DDB 查询中同时使用这两种索引......

您可以做的最好的事情,将 startTime 作为排序键,然后您可以在 endTime 上进行过滤

但请注意,您仍然需要支付 startTime 在您的范围内读取所有记录的费用,过滤只是在将数据返回给您之前丢弃记录。


推荐阅读