使用查询而非排序键对 DynamoDB 数据进行排序

问题描述 投票:0回答:1

我是 DynamoDB 和 Python 的新手,并且遇到一个问题,我必须查询 DynamoDB 并根据日期列(不是排序键)按降序对数据进行排序。 我没有找到任何使用 Boto3 API 对数据进行排序的方法。

经过 2 天的 stackoverflow 广泛研究,其他网站只回答我这是不可能的。所以只是尽我最后的努力。

日期列是字符串类型,数据格式为 YYYYMMDD_HHMMSS。 目前我正在使用下面的代码来检索 Json 格式的数据。

result = TABLE.query(
KeyConditionExpression="partitionKey = :pk",
ExpressionAttributeValues={
":pk: partitionKey
},
}

这是第一个对查询进行排序的好方法,但如果不可能使用 python 库对数据进行排序,该库会转换 result["items"] 并使用排序后的 json 进行响应。

结果[“items”]是:

[{
"col1: "colV",
"dateColumn: "20231104_122600",
.......
},
{removing for brevity}
]

非常感谢任何帮助

python-3.x amazon-dynamodb dynamodb-queries
1个回答
0
投票

桌子上已经有排序键了吗?如果你这样做,你有 2 个选择:

  1. 创建一个以日期为排序键的 GSI。这将允许根据日期自动排序
  2. 在客户端排序。
sorted_list = sorted(result['Items'], key=lambda x: x['dateColumn'])
© www.soinside.com 2019 - 2024. All rights reserved.