Как отсортировать строки DynamoDB по атрибуту
У меня есть следующая таблица:
ItemUUID (string) | Purchases (number) | Type (string)
--------------------------------------
book-a | 5 | book
book-b | 1 | book
book-c | 10 | book
Каждый раз, когда кто-то покупает товар, я хотел бы увеличить Purchases
, Затем я хотел бы запросить таблицу, чтобы получить наиболее купленные предметы (ItemUUID
отсортировано по DESC по Purchases
)
Я думал, что смогу сделать ItemUUID
первичный ключ, и сделать глобальный вторичный индекс на Type
с ключом сортировки Purchases
, Затем запросите GSI где Type = book
, оставьте ключ сортировки пустым, и Sort Descending.
Это не работает. Возможен ли мой вариант использования с DynamoDB?
1 ответ
То, что я придумал, работает, но я чувствую что-то вроде хака.
Определение таблицы
Primary partition key type (String)
Primary sort key uuid (String)
Глобальный вторичный индекс
Primary partition key type (String)
Primary sort key purchases (Number)
Поскольку у GSI не должно быть уникальных ключей раздела + сортировки, я могу получить способ сделать запрос, где type=book
, оставьте покупки пустыми, сортируйте DESC