如何通过+其他键之间的字符串查询DynamoDB

How to query DynamoDB by string between + other keys

我正在尝试设计满足以下条件的 DynamoDB 查询:

get items by type, category, and date between(date_1, date_2)

我已将这些属性存储在全局二级索引中:

我知道我可以使用 between 运算符按给定日期字符串进行查询:

gsi_1_pk = 'products' and gsi_1_sk between '2019-01-01T00:00:00.000Z' and '2019-01-01T00:00:00.000Z'

但有些情况下我想通过 3 个属性来查询,而不仅仅是日期。

所以,我想要一个允许我通过所有可能的过滤组合进行查询的解决方案:typecategorydate betweentype + categorytype + date between, category + date between type + category + date between.

如何将这个 between 操作与 GSI 的其他属性结合起来?

我最终创建了一个新的全局二级索引,我将 date 单独存储在排序键中,这使我可以毫无问题地使用 between Dynamo 操作。

缺点是我必须为这样一个简单的查询创建一个新的 GSI。但正如这里许多人所说,DynamoDB 似乎不是这项工作的“right/best”工具。