代码之家  ›  专栏  ›  技术社区  ›  Vivek Sable

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

  •  2
  • Vivek Sable  · 技术社区  · 6 年前

    我有一张桌子 TestTable 和分区键 TestColumn .

    输入日期:

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

    当我使用equal query时,日期就开始工作了。

    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 回复  |  直到 6 年前
        1
  •  1
  •   F_SO_K    6 年前

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

    dynamodb查询将从一个且只有一个分区返回数据,这意味着您必须在请求中提供一个分区键。

    键条件表达式

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

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

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

    如果使用 Scan 您可以使用 ExpressionFilter 并使用中间运算符on TestColumn