Невозможно запросить ключ раздела в DyanmoDB от boto3 - PullRequest
0 голосов
/ 22 мая 2018

У меня есть одна таблица TestTable и ключ раздела TestColumn.

Входные данные Даты:

from_date= "2017-04-20T16:31:54.451071+00:00"
to_date = "2018-04-20T16:31:54.451071+00:00"

когда я использую равный запрос, дата и время его работы.

key_expr = Key('TestColumn').eq(to_date)
query_resp = table.query(KeyConditionExpression=key_expr)

, но когда я использую between, запрос не работает.

key_expr = Key('TestColumn').between(from_date, to_date)
query_resp = table.query(KeyConditionExpression=key_expr)

Ошибка: Unknown err_msg while querying dynamodb: An error occurred (ValidationException) when calling the Query operation: Query key condition not supported

1 Ответ

0 голосов
/ 22 мая 2018

https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html

DynamoDB Query будет возвращать данные из одного и только одного раздела, то есть в запросе необходимо указать один ключ раздела.

KeyConditionExpression

Условие, которое указывает ключевые значения для элементов, которые должны быть получены действием Query.

Условие должно выполнить проверку на равенство для значения ключа одного раздела.

При желании вы можете использовать оператор BETWEEN для ключа сортировки (но вам все равно придется указывать один ключ раздела).

Если вы используете Scan, вы можете использовать ExpressionFilter и используйте оператор МЕЖДУ TestColumn

...