Вот как вы можете сделать это в DynamoDB, используя GSI с хэш-ключом creation_y_m
и ключом диапазона GSI creation_date
.
Когда вы запрашиваете диапазон дат создания,вам нужно немного поработать с датами, чтобы выяснить все месяцы между двумя датами, но затем вы можете запросить GSI с помощью ключевого выражения условия, подобного этому.
creation_y_m = 2019-02 AND creation_date BETWEEN 2019-02-05T12:00.00Z AND 2019-02-18T06:00:00Z
Учитывая, что большинствоваш запрос - это двухнедельный интервал, вам обычно нужно сделать только один или два запроса, чтобы получить все элементы.
Возможно, вам потребуется заполнить поле creation_y_m
, но это довольно простоСделайте это, отсканировав свою таблицу и обновив каждый элемент, чтобы он имел новый атрибут.
Конечно, существует множество вариантов этого.Вы можете настроить, насколько гранулирован ваш хэш-ключ (может быть, вам нужен только год, а может быть, год-месяц-день).Вы можете использовать время эпохи вместо строк ISO 8601.