DynamoDB НЕ РАВЕН на ключе сортировки GSI - PullRequest
0 голосов
/ 04 февраля 2020

Как следует из названия, я нахожусь в ситуации, когда мне нужно извлечь все записи из таблицы GSI динамо, учитывая, что я знаю ключ ha sh и знаю ключ сортировки, которого я хочу избежать.

Таблица выглядит следующим образом:

Id - Primary Key,
AId - GSI hash key,
BId - GSI sort key

Мне нужен эффективный запрос для получения записей по этому запросу

AId = 1 and BId != 2.

DynamoDB не поддерживает оператор <> при запросах на га sh и ключах сортировки, он присутствует только в выражениях фильтра, но они также не допускаются ни в одном из полей первичного ключа.

Так что бы быть решением здесь? Сканирование, вероятно, не очень хорошая идея, если только невозможно сканировать раздел, но это тоже не поддерживается.

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

1 Ответ

1 голос
/ 04 февраля 2020

Предполагая, что ваш ключ сортировки на самом деле является цифрой c, как показано в вашем примере ...

Тогда лучшим вариантом будет выполнить два отдельных запроса ..

AId = 1 and BId < 2

AId = 1 and Bid > 2

На самом деле, когда я пишу это ... Я думаю, что это будет работать независимо от типа ключа сортировки ...

...