У меня есть таблица, в которой используется ключ хеша и ключ сортировки (диапазона). Мой ключ диапазона - это uuid. У меня есть случай, когда у меня есть произвольный набор ключей диапазона, который я хочу запросить в базе данных для использования DynamoDBMapper. Они никоим образом не являются последовательными, и, к сожалению, для моей цели нет способа, чтобы они могли быть последовательными, поэтому я не могу запросить диапазон ключей (т. Е. Ключ находится между a и b). Есть ли способ получить условие запроса, которое ищет ключ диапазона, который находится в наборе потенциальных значений? По существу, условие sqERE WHERE подобно: rangeKey IN (val1, val2, ...);DynamoDB: запрос для ключа диапазона в наборе непересекающихся клавиш диапазона
В соответствии с документами для DynamoDBQueryExpression это не представляется возможным с помощью setKeyConditionExpression или setRangeKeyConditions. Есть ли эффективный способ сделать это? Или моя лучшая ставка, повторяющаяся через мой набор потенциальных значений и использование метода загрузки для индивидуального извлечения их из базы данных? Операция
Вы можете поделиться немного подробнее о своей модели данных? кажется немного странным использовать uuids в качестве ключей диапазона, потому что у них нет естественного порядка. – hellomichibye
Я второй комментарий hellomichibye. Похоже, ваша модель данных нуждается в некоторой работе. Использование UUID в качестве ключа диапазона не имеет смысла. –
Я согласен, что это не идеальный вариант, но это лучшее решение, с которым мы столкнулись. У нас есть разделы базы данных для разных клиентов, к которым обращаются через хэш-ключ. Внутри раздела все документы очень независимы друг от друга, поэтому любая сортировка или упорядочение будут произвольными. Этот запрос необходим, потому что у нас есть ссылочная таблица, которая связывает несколько документов с другим объектом. Однако ссылки на этот объект часто меняются, поэтому снова любая сортировка или упорядочение будут очень произвольными. –