使用dynamodbmapper从dynamodbjava检索所有项id

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

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

DynamoDBScanExpression paginatedScanListExpression = new DynamoDBScanExpression()
                .withLimit(10000)
                .withProjectionExpression("id");

var paginatedList = mapper.scanPage(MyObject.class, paginatedScanListExpression);

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

oewdyzsn

oewdyzsn1#

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

ScanSpec scanSpec = new ScanSpec().withProjectionExpression("id");

    try {
        ItemCollection<ScanOutcome> items = table.scan(scanSpec);

        Iterator<Item> iter = items.iterator();
        while (iter.hasNext()) {
            Item item = iter.next();
            System.out.println(item.toString());
        }

    }
    catch (Exception e) {
        System.err.println("Unable to scan the table:");
        System.err.println(e.getMessage());
    }

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

相关问题