Запрос DynamoDB только по вторичному индексу - PullRequest
0 голосов
/ 30 января 2019

Я храню учетные записи пользователей в DynamoDB:

{
  email: 'user1@xxx.com',
  expires: 1548807053247,
}

Мой хэш-ключ - это поле email.

Я хочу добавить ежедневную работу cron, которая будет отправлять напоминание по электронной почте длясрок действия всех учетных записей истекает (в ближайшие 14 дней).

Для этого мне нужно запросить только поле expires - без использования хеш-ключа.

Я полагаю, что мне нужноопределить вторичный индекс в этом поле (возможно, глобальный, а не локальный?), но я не уверен, как написать правильный запрос для него.

Я использую AWS.DynamoDB.DocumentClient за доступ к столу, заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

У меня часто возникает такая же проблема

, что я делаю, добавляю еще один атрибут с именем "all" со значением 1
(вы можете использовать любой ключ / значение)
и затем создаетеGSI

  • раздел: все
  • сортировка: истекает

, чтобы немного оптимизировать, вы можете добавить этот атрибут только для активных пользователей

или вы можете добавить атрибут активный номер и использовать его в качестве ключа раздела для GSI

, это очень неэффективное распределение ключей раздела
, поскольку все элементы принадлежат одному разделу, но я не нашел другого способа обойти

Я был бы рад услышать другое решение

0 голосов
/ 30 января 2019

Просто укажите IndexName в дополнение к TableName при вызове Query API.( Документы .) Остальное такое же, как если бы вы запрашивали таблицу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...