1. 多实体关联分组查询样例
实体多对象关联查询接口
实体关系:folders - irFolderDocument - documents - irDocumentFile - files,查询文件夹下的最大、最小文件、文件总数、文件名列表等
{
"condition": [
{
"bosclass": "folders",
"alias": "fo",
"subCondition": [] //subCondition、nestAnd、nestOr筛选条件与未分组查询逻辑相同
},
{
"bosclass": "documents",
"alias": "d"
},
{
"bosclass": "files",
"alias": "f"
},
{
"bosclass": "irFolderDocument",
"alias": "fod",
"type": "relationship",
"from": "fo",
"to": "d"
},
{
"bosclass": "irDocumentFile",
"alias": "df",
"type": "relationship",
"from": "d",
"to": "f"
}
],
"grouping": { //分组统计
"collect": { //分组字段,必传,可以是单个字段、多个字段组合,也可以是分段数据,分段数据的组间距以“:数字”表示,如age:5表示0-4、5-9等间距
"folderCode": "fo.code",
"folderName": "fo.name"
},
"keep": { //分组后保留字段,不可有collect字段
"fileName": "f.name",
"fileSize": "f.size"
},
"count": "length", //聚合返回的数量,count字段可以自定义
"aggregate": { //聚合方法,使用字段必须在keep中定义,支持MAX(最大值)、MIN(最小值)、SUM(求和)、AVERAGE/AVG(求平均值)、FIRST(第一个值)、LAST(最后一个值)六种聚合函数
"maxFileSize": "MAX(fileSize)",
"avrage": "AVERAGE(fileSize)",
"avg": "AVG(fileSize)", //取平均值
},
"condition": [
{ //分组之后的字段筛选,condition、nestAnd、nestOr都支持,与未分组逻辑相同,但field必须是collect、count、aggregate中定义的字段
"field": "length",
"operator": ">=",
"value": "1",
"number": "true",
"logic": "And"
}
],
"sort": [
{
"sortby": "length", //分组聚合之后的排序字段,必须是collect、count、aggregate中定义的字段,可用多个字段排序
"order": "asc" //正序(asc)或倒序(desc),默认asc
}
]
},
"select": { //当使用grouping分组时,select字段必须是collect、aggregate、count字段、keep,keep为JSON数组,也可取keep的某个属性如keep.fileName,若未指定,返回配置中的collect、count、aggregate字段和keep。返回值支持ROUND函数,对结果四舍五入取整数。
"folderCode": "folderCode",
"folderName": "folderName",
"最大文件": "maxFileSize",
"最小文件": "avrage",
"平均文件大小": "ROUND(average)", //平均文件大小,用ROUND函数取整
"fileNameList": "keep.fileName", //keep中的字段,用keep.xx表示,结果返回列表
"keep": "keep"
}
}
查询结果如下:
{
"message": "请求处理成功",
"code": "SUCCESS",
"data": {
"data": [
{
"folderCode": "1605769684396",
"最小文件": 1.10056943E8,
"keep": [
{
"fileName": "upgrade.ifc",
"fileSize": 42329391
},
{
"fileName": "样列模型_全专业.zip",
"fileSize": 34262415
},
{
"fileName": "中交国际-地上-13F以下[MEP]_R1502_CEN_-3.zip",
"fileSize": 253579023
}
],
"fileNameList": [
"upgrade.ifc",
"样列模型_全专业.zip",
"中交国际-地上-13F以下[MEP]_R1502_CEN_-3.zip"
],
"folderName": "模型",
"最大文件": 253579023
},
{
"folderCode": "1607497132476",
"最小文件": 995725.0,
"keep": [
{
"fileName": "3.2.1预生产.docx",
"fileSize": 960739
},
{
"fileName": "response.pdf",
"fileSize": 1030711
}
],
"fileNameList": [
"3.2.1预生产.docx",
"response.pdf"
],
"folderName": "文档",
"最大文件": 1030711
}
],
"count": 2
}
}