Я использую AWS DynamoDB для хранения записей сеансов пользователей для веб-приложения.
Каждая запись имеет следующий формат:
uuid timestamp type
, где
uuid
- это идентификатор пользователя и ключ раздела timestamp
- это метка времени Unix и ключ сортировки type
"подключен" или "отключен"
В нашей панели администратора я хочу отобразить таблицу с последними XX сессиями, сначала с самой новой сессией.
Вопрос: Как использовать AWS DynamoDB, как я могу запросить все sessions
в отсортированном порядке и с заданным пределом?
Требуется указать partition key
при использовании Query
A Scan не возвращает результаты в отсортированном порядке.
Все решения, которые я видел, кажутся немного "хакерскими", и я подозреваю, что я что-то неправильно понял, так как этот вариант использования должен быть довольно распространенным.
Мне известно об этом хакерском решении :
- Определить переменную для всех строк с одинаковым значением
- Создать вторичный индекс и установитьпеременная в качестве ключа раздела и временная метка в качестве ключа сортировки
- Запрос этого вторичного индекса (теперь все строки имеют один и тот же ключ разделения)
Я не эксперт в DynamoDB, но это решение кажетсябыть взломом и противостоять архитектуре DynamoDB.