Ни операции "Scan
" (для чтения всей таблицы), ни "Query
" (для чтения всех элементов с одним и тем же ключом раздела) не возвращают оценку общего количества результатов.В некоторых случаях (например, когда предоставляется FilterExpression
), у DynamoDB нет эффективного способа сделать эту оценку.В других случаях у DynamoDB может быть способ предоставить эту информацию, но это не так.
Если я вас правильно понимаю, вы хотите Scan
всей таблицы без фильтра.Как я уже сказал, Scan
само по себе не дает вам количество элементов в таблице.Но вы можете найти это число, используя DescribeTable
, который возвращает, помимо прочего, атрибут "ItemCount
", который является оценкой общего количества элементов в таблице, которая может быть не совсем актуальнойно, возможно, этого достаточно для ваших нужд (если вам нужна оценка для какого-то отчета о проделанной работе, он не должен быть точным на 100%).
Если вам действительно нужен точный и актуальный-Момент подсчета элементов в разделе или во всей таблице, вы всегда можете попытаться сохранить такие счетчики как отдельные данные.Правильное выполнение этого не тривиально и может повлиять на производительность, но в некоторых случаях использования (например, редкие записи и много чтений) может быть полезно.