Как отсортировать строки DynamoDB по атрибуту - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть следующая таблица:

ItemUUID (string) | Purchases (number) | Type (string)
--------------------------------------
book-a | 5 | book
book-b | 1 | book
book-c | 10 | book

Каждый раз, когда кто-то покупает предмет, я хотел бы увеличить Purchases.Затем я хотел бы запросить таблицу, чтобы получить наиболее купленные предметы (ItemUUID s, отсортированные по DESC по Purchases)

. Я подумал, что мог бы сделать ItemUUID первичным ключом и сделать глобальный вторичный индексна Type с ключом сортировки Purchases.Затем запросите GSI, где Type = book, оставьте ключ сортировки пустым и Sort Descending.

Это не работает.Возможен ли мой вариант использования с DynamoDB?

1 Ответ

0 голосов
/ 29 ноября 2018

То, что я придумал, работает, но я чувствую, что это довольно хакерски.

Определение таблицы

Primary partition key   type (String)
Primary sort key        uuid (String)

Глобальный вторичный индекс

Primary partition key   type (String)
Primary sort key        purchases (Number)

Поскольку у GSI не должно быть уникальных ключей разделения и сортировки, я могу получить способ выполнить запрос, где type=book, оставить покупки пустыми, сортировка DESC

...