Я попробовал свою первую попытку использовать DynamoDB после долгого использования реляционных баз данных, теперь это делается для обновления результатов тестирования для последующего анализа, рассмотрите следующую таблицу и вторичный индекс
Я пытался получить для данного testName, тест выполняется в известном диапазоне ревизий, используя следующий код Java:
HashMap<String, Condition> scanMap = new HashMap<>();
scanMap.put("revision", new Condition().withComparisonOperator(ComparisonOperator.BETWEEN).withAttributeValueList(Arrays.asList(new AttributeValue("N:"+String.valueOf(minRev)), new AttributeValue("N:"+String.valueOf(maxRev)))));
scanMap.put("testName", new Condition().withComparisonOperator(ComparisonOperator.EQ).withAttributeValueList(new AttributeValue(Collections.singletonList(testName))));
DynamoDBScanExpression scanExpression = new DynamoDBScanExpression().withScanFilter(scanMap);
scanExpression.setIndexName("testName-revision-index");
List<ValidationReport> reports = getMapper().scan(ValidationReport.class, scanExpression);
Я пытался удалить "N:" без везения. Полное удаление выражения ревизии возвращает все тестовые прогоны без ограничения диапазона ревизий.
Любая помощь будет оценена здесь