DynamoDB 不提供聚合功能。您必须创造性地使用查询、扫描、索引和各种工具来执行这些任务。总而言之,这些操作中查询/扫描的吞吐量开销可能很大。

您还可以选择使用适合您首选 DynamoDB 编码语言的库和其他工具。使用之前,请确保它们与 DynamoDB 兼容。

计算最大值或最小值

使用结果的升序/降序、Limit 参数以及设置顺序的所有参数来查找最大值和最小值。

例如-

Map eaval = new HashMap<>();
eaval.put(":v1", new AttributeValue().withS("hashval"));
查询表达式 = 新 DynamoDBQueryExpression()
   .withIndexName("你的索引名称")
   .withKeyConditionExpression("HK = :v1")
   .withExpressionAttributeValues(值)
   .withScanIndexForward(假); //降序

queryExpression.setLimit(1);
查询结果页 res =
   dynamoDBMapper.queryPage(Table.class, queryExpression);

计算次数

使用 DescribeTable 获取表条目的计数,但请注意它提供过时的数据。另外,利用 Java getScannedCount 方法

利用 LastEvaluatedKey 确保交付所有结果。

例如-

ScanRequest scanRequest = new ScanRequest().withTableName(yourtblName);ScanResult yourresult = client.scan(scanRequest);
System.out.println("#items:" + yourresult.getScannedCount());

计算平均值并

在处理之前利用索引和查询/扫描来检索和过滤值。然后只需通过对象对这些值进行操作即可。