В настоящее время метод запроса ItemCollection # в Ruby AWS SDK возвращает весь набор данных. Я просмотрел исходный код Ruby AWS SDK для любой возможности разбивки на страницы, но опция, ближайшая к разбивке на страницы, - :limit
, без разбивки на страницы. Согласно DynamoDB API Амазонки (HTTP-, не Ruby) документация для работы Query предлагает Могло быть пагинацией с ответом ключа LastEvaluatedKey
:Разбиение страницы с помощью ItemsCollection # query?
Первичного ключ элемента, когда операция запроса остановлена, включая предыдущий результат задавать. Используйте это значение, чтобы начать новую операцию, исключая это значение в новом запросе. LastEvaluatedKey имеет значение NULL, когда весь набор результатов запроса завершен (т. Е. Операция обработана «последней страницей»).
Так что я могу сделать, пейджинг, добавив опцию :limit
, а затем делает следующий запрос для значения диапазона после моего последнего Item
, но я понятия не имею, что общее количество есть, если я не делаю полный запрос.
Есть ли лучший/лучший способ достижения разбивки на страницы?
Я боялся, что это так. Поскольку я использую Ruby SDK, есть ли у вас представление о том, может ли метод #query достичь этого? Я попытался добавить параметр 'count: true', но он все равно возвращает' Enumerator'. –
@ JohnK.Chow: Раздражает действительно - я не использую Ruby много за пределами тем DevOps, поэтому не пробовал это сам; API docs для [ItemCollection] (http://docs.amazonwebservices.com/AWSRubySDK/latest/AWS/DynamoDB/ItemCollection.html) на самом деле не перечисляют параметр 'count' для' # query', а скорее только выделенный метод # count, предположительно подсчитывающий элементы в коллекции с помощью таблицы scan_, которая поражает меня как нечетную, учитывая стоимость/производительность характеристики [Scan] (http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/API_Scan.html) - может быть ошибка в документе? –
API запросов может подсчитывать только записи с одним и тем же значением ключа хэша, это то, что вы хотите? Единственный способ подсчета «всех записей» - это сканирование. –