【问题标题】:Unable to query on Partition key in DyanmoDB by boto3无法通过 boto3 查询 DynamoDB 中的分区键
【发布时间】:2018-10-31 20:11:31
【问题描述】:

我有一张表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

【问题讨论】:

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


【解决方案1】:

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

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

KeyConditionExpression

指定键值的条件 用于由 Query 操作检索的项目。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 2023-01-25
    • 2015-02-01
    • 2017-01-14
    • 1970-01-01
    相关资源
    最近更新 更多