我正在尝试找出查询列中所有值的最佳方法。我应该将其设置为GSI(目前是)。是可以查询还是我需要进行扫描?
感谢您的帮助
答案 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"));
}