无法通过boto3查询DyanmoDB中的分区键

时间:2018-05-22 06:34:29

标签: python-3.x amazon-dynamodb boto

我有一个表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 :(得分:1)

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

DynamoDB Query将从一个且仅一个分区返回数据,这意味着您必须在请求中提供单个分区键。

  

KeyConditionExpression

     

指定键值的条件   查询操作要检索的项目。

     

条件必须对单个分区键执行相等性测试   值。

您可以选择在排序键上使用BETWEEN运算符(但您仍需提供单个分区键)。

如果您使用Scan,则可以使用ExpressionFilter并使用TestColumn上的BETWEEN运算符