长沙企业建站公司,网站信息登记表,保险公司官网查询,建设部执业考试中心网站在之前的文章中#xff0c;我们介绍了如何查询DynamoDB数据库 查询DynamoDB第1部分 查询DynamoDB第2部分 。 除了发出查询之外#xff0c;DynamoDB还提供扫描功能。 扫描所做的是获取您在DynamoDB表上可能拥有的所有项目。 因此#xff0c;扫描不需要任何基于我们的分区键… 在之前的文章中我们介绍了如何查询DynamoDB数据库 查询DynamoDB第1部分 查询DynamoDB第2部分 。 除了发出查询之外DynamoDB还提供扫描功能。 扫描所做的是获取您在DynamoDB表上可能拥有的所有项目。 因此扫描不需要任何基于我们的分区键或您的全局/本地二级索引的规则。 扫描提供的功能是基于已获取的项目进行过滤并从已获取的项目中返回特定属性。 下面的代码段通过添加过滤并仅选择电子邮件字段来对“登录名”表进行扫描。 public ListString scanLogins(Date date) {ListString emails new ArrayList();MapString, String attributeNames new HashMapString, String ();attributeNames.put(#timestamp, timestamp);MapString, AttributeValue attributeValues new HashMapString, AttributeValue();attributeValues.put(:from, new AttributeValue().withN(Long.toString(date.getTime())));ScanRequest scanRequest new ScanRequest().withTableName(TABLE_NAME).withFilterExpression(#timestamp :from).withExpressionAttributeNames(attributeNames).withExpressionAttributeValues(attributeValues).withProjectionExpression(email);MapString,AttributeValue lastKey null;do {ScanResult scanResult amazonDynamoDB.scan(scanRequest);ListMapString,AttributeValue results scanResult.getItems();results.forEach(r-emails.add(r.get(email).getS()));lastKey scanResult.getLastEvaluatedKey();scanRequest.setExclusiveStartKey(lastKey);} while (lastKey!null);return emails;} 在对应用程序使用扫描之前我们必须考虑到扫描会获取所有表项。 因此它在费用和性能上都有很高的成本。 此外它可能会消耗您的配置容量。 最好坚持查询并避免扫描。 您可以在github上找到源代码。 翻译自: https://www.javacodegeeks.com/2016/08/scan-dynamodb-items-java.html