如何通过+其他键之间的字符串查询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 个属性来查询,而不仅仅是日期。
所以,我想要一个允许我通过所有可能的过滤组合进行查询的解决方案:type
、category
、date between
、type + category
、type + date between
, category + date between
type + category + date between
.
如何将这个 between
操作与 GSI 的其他属性结合起来?
我最终创建了一个新的全局二级索引,我将 date
单独存储在排序键中,这使我可以毫无问题地使用 between
Dynamo 操作。
缺点是我必须为这样一个简单的查询创建一个新的 GSI。但正如这里许多人所说,DynamoDB 似乎不是这项工作的“right/best”工具。
我正在尝试设计满足以下条件的 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 个属性来查询,而不仅仅是日期。
所以,我想要一个允许我通过所有可能的过滤组合进行查询的解决方案:type
、category
、date between
、type + category
、type + date between
, category + date between
type + category + date between
.
如何将这个 between
操作与 GSI 的其他属性结合起来?
我最终创建了一个新的全局二级索引,我将 date
单独存储在排序键中,这使我可以毫无问题地使用 between
Dynamo 操作。
缺点是我必须为这样一个简单的查询创建一个新的 GSI。但正如这里许多人所说,DynamoDB 似乎不是这项工作的“right/best”工具。