Python 2.7 aws DynamoDB boto3查询分组依据和订单依据

Python 2.7 aws DynamoDB boto3查询分组依据和订单依据,python-2.7,amazon-web-services,amazon-dynamodb,boto3,Python 2.7,Amazon Web Services,Amazon Dynamodb,Boto3,我希望请求一个dynamodb表,但我不知道如何使用Python2.7SDK boto3执行GROUPBY和ORDERBY 我已经反复阅读了aws文档和大多数堆栈主题,但我没有找到明确的答案,因为我的请求有点复杂 我将从我的表中获取所有项目,这些项目通过“源”具有“permaname”组,并且我将通过在DESC上创建_获得结果顺序 这就是我的请求我目前的简单请求: response = self.table.query(KeyConditionExpression = key('permanam

我希望请求一个dynamodb表,但我不知道如何使用Python2.7SDK boto3执行GROUPBY和ORDERBY

我已经反复阅读了aws文档和大多数堆栈主题,但我没有找到明确的答案,因为我的请求有点复杂

我将从我的表中获取所有项目,这些项目通过“源”具有“permaname”组,并且我将通过在DESC上创建_获得结果顺序

这就是我的请求我目前的简单请求:

response = self.table.query(KeyConditionExpression = key('permaname').eq(self.permaname))

我希望有人能找到答案

DynamoDB没有像RDBMS中的groupby那样的聚合功能。只能对“排序键”属性执行排序。对于所有其他属性,您可能需要在客户端执行此操作

另一种方法是使用排序键创建全局二级索引(GSI)。然而,GSI将为读写容量单元带来额外成本

查询结果总是按排序键值排序。如果数据 排序键的类型为Number,结果以数字形式返回 顺序否则,将按UTF-8字节的顺序返回结果。通过 默认情况下,排序顺序为升序。要反转顺序,请设置 ScanIndexForward参数设置为false


您只能对“排序键”属性执行“按操作排序”。如果您的排序键设置为“在上创建”,则可以使用ScanIndexForward执行“按操作排序”

response = self.table.query(KeyConditionExpression = key('permaname').eq(self.permaname), ScanIndexForward=False)

非常感谢你的回答,我已经编辑了我的问题。你知道怎么做吗