Dynamodb可以查询列中的所有值

时间:2016-05-27 05:15:54

标签: amazon-dynamodb

我正在尝试找出查询列中所有值的最佳方法。我应该将其设置为GSI(目前是)。是可以查询还是我需要进行扫描?

感谢您的帮助

1 个答案:

答案 0 :(得分:3)

如果您没有按键过滤,则必须进行扫描。以下是扫描索引并获取所有值的示例代码。

    List<String> categoryList = new ArrayList<>();
    DynamoDB dynamoDB = new DynamoDB(dynamoDBClient);
    Table table = dynamoDB.getTable("Music");
    Index index = table.getIndex("Secondary Index Name");

    ItemCollection<ScanOutcome> items = null;   
    ScanSpec scanSpec = new ScanSpec().withSelect(Select.SPECIFIC_ATTRIBUTES).withAttributesToGet("Category");

    items = index.scan(scanSpec);
    Iterator<Item> pageIterator = items.iterator();
    while (pageIterator.hasNext() ) {

        categoryList.add(pageIterator.next().getString("Category"));
    }