我的问题可能类似于以下问题
如何查询介于开始日期和结束日期之间的条目 - DynamoDB,
但我认为在我的要求和我正在寻找的内容方面有所不同。
对于特定的分区键值,我想查询当前日期位于开始日期和结束日期之间的所有记录。
我的用例是会创建调查。每个调查都有一个名称并属于一个类别。每个调查都有一个开始日期和结束日期。我需要查询给定类别的所有活动调查的名称,即当前日期位于开始日期和结束日期之间的类别的所有调查。此外,调查可以是活动的/非活动的。
到目前为止做了什么:
表设计:表 tbl_surveys
分区键:tbl_pk_surv
排序键:tbl_sk_surv
一个“数据”属性:data_attr
我使用tbl_sk_surv 作为分区键和data_attr 作为 Sortkey创建了一个GSI。
我为每个调查创建 2 条记录:
tbl_pk_surv |tbl_sk_surv|data_attr|cat_name|start_date|end_date|status
Surv-0tOrClRnTz| SURVEY | Survey1 | Cat1 |1564012800|1564876799|1
tbl_pk_surv | tbl_sk_surv | data_attr| survey_name | status
Surv-0tOrClRnTz | Cat1 | 1564012800-1564876799 | Survey1 | 1
所以我将 startdate 和 enddate 放在第二条记录的 1 列中。我的计划是,我想查询 GSI 分区键值“Cat1”,并获取“Cat1”的所有调查名称。请让我知道如何查询 GSI 排序键值 1564012800-1564876799,以便我可以在开始日期和结束日期之间进行查询。
请注意,我放置了第一条记录,静态值“SURVEY”作为 pk_sk_surv 属性的值,以便我可以通过使用“SURVEY”作为分区键值查询 GSI 来查询所有调查记录。我正在尝试实现单表 no-sql 设计。
我是 NoSql Design 的新手,请指导我如何为我的需求建模数据和查询。