前言:

要使用 Orchestra Python API (下文简称 api) 查询数据,就需要使用 read 方法。read 方法提供丰富的过滤、聚合、排序选项,在用户权限范围内支持查询一切实体类型,且线程安全,可放心使用。

sorts 参数支持单列排序、多重排序,是数据库 order by 关键字的 API 实现。

正文:

sorts 参数目前支持 column、direction 关键字,足以满足复杂的排序需求。

sorts 参数的一般形式如下:

[{"column": 字段, "direction": 方向}]

column 关键字表示对当前查询结果按照给定字段进行排序。

注意:给定字段需要满足在图式中 sorter 属性的 enabled 值不为 false,如果为 false 则不支持,目前 summary 及 pivot 字段不支持排序。

direction 关键字表示排序的方向,有两个可选值,分别是 asc 和 desc。

asc 表示对 column 给定字段升序排序,desc 表示对 column 给定字段降序排序。

一:下面我们看一个单列排序的示例:

api.read("Task", sorts=[{"column": "name", "direction": "asc"}])

该语句表示在 Task 数据表的查找结果上,按照 name 字段升序排序。

二:下面我们再看一个多重排序的示例:

api.read("Task", sorts=[{"column": "name", "direction": "asc"}, {"column": "id", "direction": "desc"}])

该语句表示在 Task 数据表的查找结果上,按照 name 字段升序排序,name 相同则按照 id 字段降序排序。

在数据库中执行多重排序的排序次序与 sorts 参数中字段的顺序一致。

这条语句可以很直观地转换成 sql 伪代码如下:

select * from Task order by name asc, id desc;

注意:目前排序功能不支持路由路径型字段。