Как отсортировать строки 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

Другие вопросы по тегам