Запросы DynamoDB с использованием глобального вторичного индекса - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь запросить все строки, созданные за последнюю неделю. Я создал индекс для created ключа в AWS console. В своем запросе я добавил условие ключа с ComparisonOperator.GT для ключа created. Но когда я запускаю запрос, он выдает ошибку типа Query key condition not supported. Если я задаю условие как ComparisonOperator.EQ, оно вернет одну строку. Но не работает для ComparisonOperator.GT.

Код:

Condition rangeKeyCondition = new Condition();
    rangeKeyCondition.withComparisonOperator(ComparisonOperator.GT).withAttributeValueList(new AttributeValue().withS("11:26 23/10/2018 "));

    Map<String, Condition> keyConditions = new HashMap<String, Condition>();
    keyConditions.put("created", rangeKeyCondition);


    QueryRequest queryRequest = new QueryRequest();
    queryRequest.withTableName(getTableName(TABLE_NAME));
    queryRequest.withIndexName("created-index");
    queryRequest.withKeyConditions(keyConditions);

    QueryResult result = EventStoreInitializer.getAmazonDynamoDBClient().query(queryRequest);

1 Ответ

0 голосов
/ 15 ноября 2018

Я прочитал ваш случай, поэтому для желаемого результата вы не должны создавать «создан», так как Index bz становится ключом для таблицы, а в keyCondition вы не можете использовать операторы GT и LT.

вам нужноиспользовать FilterExpression, и там вы можете использовать GT и LT для «созданного» поля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...