Номер строки запроса DynamoDB

Могу ли я получить индекс ответа на запрос в DyanmoDB?

[hashKey exists, sortKey exists]

query { KeyCondExp = "hashKey = smthin1", FilterExp = "nonPrimeKey = smthin2" }

Мне нужен индекс строки в соответствии с sortKey для этого выбранного документа

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
0
0
17
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Когда запрос DynamoDB Query возвращает элемент — в вашем примере выбранный с помощью определенного фильтра — он возвращает полный элемент, включая ключ сортировки. Если это то, что вы называете «индексом строки в соответствии с sortKey», то все готово.

Если же под «индексом» вы подразумеваете числовой индекс — т. е. если элемент является 100-м ключом сортировки в этом разделе (хеш-ключом), вы хотите вернуть число 100 — ну, этого вы не можете сделать. DynamoDB хранит строки внутри раздела отсортированный по ключу сортировки, но не нумерует. Вы можете вставить элемент в середину раздела с миллионом строк, и он будет вставлен в нужное место, но DynamoDB не станет перенумеровывать список из миллиона строк только для поддержания числовых индексов.

Но есть кое-что еще, что вы должны знать. В описанном вами запросе вы используете FilterExpression для возврата только определенных строк из всего раздела. При таком запросе Amazon будет взимать с вас плату за чтение всего раздела, а не только за определенные строки, возвращенные после фильтрации. Если вы платите за чтение всего раздела, вы можете просто прочитать его полностью, без фильтра, а затем вы можете фактически подсчитать строки и получить числовой индекс совпадения, если это то, что вы хотите. Чтение всего раздела заставит вас больше работать на клиенте (и увеличить сетевой трафик), но не увеличит ваш счет DynamoDB RCU.

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