Ви можете використовувати Select
параметр і використовуватиCOUNT
в запиті. Він "повертає кількість відповідних елементів, а не самих відповідних елементів". Важливо , як зазначив Саумітра Р. Бхаве в коментарі : "Якщо розмір набору результатів запиту перевищує 1 МБ, тоді ScannedCount і Count представлятимуть лише частковий підрахунок загальної кількості елементів. Вам потрібно буде виконати кілька Операції запиту для отримання всіх результатів " .
Я не знайомий з PHP, але ось як ви можете використовувати його з Java. І тоді замість використання Count
(що, на мою думку, є функцією в PHP) на, 'Items'
ви можете використовувати Count
значення з відповіді - $result['Count']
:
final String week = "whatever";
final Integer myPoint = 1337;
Condition weekCondition = new Condition()
.withComparisonOperator(ComparisonOperator.EQ)
.withAttributeValueList(new AttributeValue().withS(week));
Condition myPointCondition = new Condition()
.withComparisonOperator(ComparisonOperator.GE)
.withAttributeValueList(new AttributeValue().withN(myPoint.toString()))
Map<String, Condition> keyConditions = new HashMap<>();
keyConditions.put("week", weekCondition);
keyConditions.put("point", myPointCondition);
QueryRequest request = new QueryRequest("game_table");
request.setIndexName("week-point-index");
request.setSelect(Select.COUNT);
request.setKeyConditions(keyConditions);
QueryResult result = dynamoDBClient.query(request);
Integer count = result.getCount();
Якщо вам не потрібно емулювати WHERE
пункт, ви можете використовувати DescribeTable
запит і використовувати отриманий підрахунок елементів, щоб отримати оцінку.
Кількість елементів у зазначеній таблиці. DynamoDB оновлює це значення приблизно кожні шість годин. Останні зміни можуть не відображатись у цьому значенні.
Крім того, важлива примітка з документації , зазначена Саумітрою Р. Бхаве в коментарях до цієї відповіді:
Якщо розмір Query
набору результатів перевищує 1 МБ, ScannedCount
і Count
представляє лише частковий підрахунок загальної кількості елементів. Вам потрібно виконати кілька Query
операцій, щоб отримати всі результати (див. Результати запитів таблиць з розподілом сторінок ).