使用dynamodbmapper从dynamodbjava检索所有项id

ttp71kqs  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(598)

我的目标是检索所有项目的ID。为此,我将使用java和dynamodbmapper。方法是使用扫描。现在,我的代码如下所示:

  1. DynamoDBScanExpression paginatedScanListExpression = new DynamoDBScanExpression()
  2. .withLimit(10000)
  3. .withProjectionExpression("id");
  4. var paginatedList = mapper.scanPage(MyObject.class, paginatedScanListExpression);

问题是我每次请求只能得到600个ID。我知道dynamodb1mb每个查询的限制,但似乎600个id对于一个请求来说太少了。有人知道我如何更有效地获取所有ID吗?

oewdyzsn

oewdyzsn1#

您可以尝试使用scanspec和projectionexpression,后者指定您希望在扫描结果中使用的属性。

  1. ScanSpec scanSpec = new ScanSpec().withProjectionExpression("id");
  2. try {
  3. ItemCollection<ScanOutcome> items = table.scan(scanSpec);
  4. Iterator<Item> iter = items.iterator();
  5. while (iter.hasNext()) {
  6. Item item = iter.next();
  7. System.out.println(item.toString());
  8. }
  9. }
  10. catch (Exception e) {
  11. System.err.println("Unable to scan the table:");
  12. System.err.println(e.getMessage());
  13. }

参考-https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/gettingstarted.java.04.html

展开查看全部

相关问题