我有一个表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
答案 0 :(得分:1)
https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html
DynamoDB Query将从一个且仅一个分区返回数据,这意味着您必须在请求中提供单个分区键。
KeyConditionExpression
指定键值的条件 查询操作要检索的项目。
条件必须对单个分区键执行相等性测试 值。
您可以选择在排序键上使用BETWEEN运算符(但您仍需提供单个分区键)。
如果您使用Scan
,则可以使用ExpressionFilter
并使用TestColumn
上的BETWEEN运算符