Puede utilizar el Selectparámetro y utilizarloCOUNT en la solicitud. "Devuelve el número de elementos coincidentes, en lugar de los elementos coincidentes en sí". Importante , como lo mencionó Saumitra R. Bhave en un comentario , "Si el tamaño del conjunto de resultados de la consulta es superior a 1 MB, ScannedCount y Count representarán solo un recuento parcial del total de elementos. Deberá realizar varios Operaciones de consulta para recuperar todos los resultados " .
No estoy familiarizado con PHP, pero así es como se puede usar con Java. Y luego, en lugar de usar Count(que supongo que es una función en PHP) en el 'Items', puede usar el Countvalor de la respuesta - $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();
Si no necesita emular la WHEREcláusula, puede utilizar una DescribeTablesolicitud y utilizar el recuento de elementos resultante para obtener una estimación.
El número de elementos de la tabla especificada. DynamoDB actualiza este valor aproximadamente cada seis horas. Es posible que los cambios recientes no se reflejen en este valor.
Además, una nota importante de la documentación como señaló Saumitra R. Bhave en los comentarios sobre esta respuesta:
Si el tamaño del Queryconjunto de resultados es superior a 1 MB ScannedCounty Countrepresenta solo un recuento parcial del total de elementos. Debe realizar varias Queryoperaciones para recuperar todos los resultados (consulte Paginación de resultados de consultas de tabla ).