更新时间:2024-11-21 GMT+08:00
分享

按条件查询对象数据

功能介绍

按条件查询对象数据。

URI

POST AstroZero域名/u-route/baas/data/v1.0/query/{objectName}?base=X&fields=f1,f2

表1 路径参数

参数

是否必选

参数类型

描述

objectName

String

参数解释

数据对象的名称,请参考登录应用设计器中操作,进入应用设计器,在数据 > 对象列表中查看。

约束限制

不涉及。

取值范围

1~80个字符。

默认取值

不涉及。

base

String

参数解释

查询参数,用于区分objectName传入数据样式。

约束限制

不涉及。

取值范围

支持如下选项:

  • I:对应对象的ID。
  • N:传入的对象名称。

默认取值

不涉及。

fields

Array

参数解释

对象显示的字段(配置为字段的唯一标识,获取方法如下),多个字段之间用逗号分隔。如果该字段不为空,则仅返回显示的字段和必要信息(如数据记录拥有者信息和id);为空则返回整个记录数据。

  1. 参考登录应用设计器中操作,进入应用设计器。
  2. 数据 > 对象列表中,将鼠标放在对象上,单击,选择“详情”
  3. 在对象详情页面的“字段”页签中,查看字段的唯一标识。

约束限制

不涉及。

请求参数

表2 请求参数

参数

是否必选

参数类型

描述

condition

Object

参数解释

表示查询的条件,包含以下元素,若为空则表示查询所有对象数据。

  • conjunction:表示需要满足的条件个数。
    • AND:表示条件都要满足。
    • OR:表示至少要满足一个条件。
  • conditions:筛选条件的数组。如果参数为空,代表查询所有对象数据,若不为空,其中的每一个元素对象都包含如下三个字段。
    • field:字段名称。
    • operator:操作符。例如,“eq”表示等于、“ne”表示不等于、“gt”表示大于、“lt”表示小于、“ge”表示大于等于、“le”表示小于等于。
    • value:对比值。
  • relation:数组中包含parents(向上查询)和children(向下查询)两个元素,两者分别对应相应的数组。

    其中,parents包含condition数组和relatedField(关联字段名称)。children包含condition数组和relationName(关联字段名称)。

约束限制

不涉及。

relation

Object

参数解释

关联查询,包含parents(向上查询)和children(向下查询)两个元素,两者分别对应相应的数组。

其中,parents包含condition数组和relatedField(关联字段名称)。children包含condition数组和relationName(关联字段名称)。

condition数组包含conjunction、conditions和relation,参数解释同condition。

{  
    //向上查询
    parents: [  //第一级父对象
      {
        relatedField: "CarHolder__CST",  //当前对象的字段(Lookup/MasterDetail类型),据此确定父对象
        options: {
          fields: ["id", "name", "Age__CST"] //父对象的待查字段
        },
        parents: [ //(可选)第二级父对象
          {
            relatedField: "cust__CST", //父对象的字段(Lookup/MasterDetail类型),据此确定祖父对象
            options: {
              fields: ["id", "name", "Email__CST"] //祖父对象的待查字段
            }
          }
        ]
      }
    ],
    //向下查询
    childs: [   //第一级子对象
      {
        relationName: "Contacts", //子对象关系名(子对象定义Lookup/MasterDetail时指定),据此确定子对象
        options: {
          fields: ["id", "name", "Age__CST", "cust__CST"] //子对象的待查字段
      },
      childs: [  //(可选)第二级子对象
        {
            relationName: "ContactCars", //孙子对象关系名
            options: {
              fields: ["id", "name", "Price__CST", "CarHolder__CST"]  //孙子对象待查字段
            }
        }
      ]
      }
    ]
  }

约束限制

不涉及。

options

Object

参数解释

附加选项,对查询返回的结果进行一些操作。

  • orderBy:按指定字段的值排序,取值为asc(升序)和desc(降序)
    options: {
                orderby: [
                    {
                        field: "name",
                        order: db.Order.desc
                    }
                ],
              }
  • groupby:按照指定字段进行分组
    options: {
                groupby: [
                    {
                        field: "name",
                    }
                ],
              }
  • distinct:去重
    options: {
                distinct: true,
              }
  • 限制查询返回的记录数:通过skip值指定从第多少条开始,limit指定总共返回多少条记录
    {
              options: {
                skip: 100,
                limit: 100
              }
          }

约束限制

不涉及。

响应参数

表3 响应参数

参数

参数类型

描述

resCode

String

参数解释

返回码。

取值范围

如果返回“0”代表请求成功,其他错误码说明请参考错误码

resMsg

String

参数解释

返回消息。

取值范围

如果成功状态,通常会返回“Success”,其他情况会返回具体的错误信息。

result

Array

参数解释

查询返回的对象数据。

count

number

参数解释

对象中满足条件的总记录数。

取值范围

不涉及。

请求示例

查询“TestProject__testForObject1__CST”对象中,name值为“zhang”的记录数,且限制只返回3条,总记录数为5条,返回的记录按“TestProject__length__CST”字段降序排列,查询参数base为N表示按对象名称进行查询。
POST https://AstroZero域名/u-route/baas/data/v1.0/query/TestProject__testForObject1__CST?base=N
  
 {"condition": {
        "conjunction": "AND",
        "conditions": [
            {
                "field": "name",
                "operator": "eq",
                "value": "zhang"
            }
        ]
    },
    "options": {
        "orderby": [
            {
                "field": "TestProject__length__CST",
                "order": "desc"
            }
        ],
        "limit": 3
    }
}

响应示例

{
    "resCode": "0",
    "resMsg": "成功",
    "result": [
        {
            "TestProject__age__CST": null,
            "TestProject__length__CST": "888",
            "TestProject__name__CST": null,
            "createdBy": "10gd000000SDzgxNSckK",
            "createdBy.__objectType": "User",
            "createdBy.name": "test0xx",
            "createdDate": "2020-05-29 12:50:59",
            "currencyIsoCode": "",
            "id": "cglE000000aMGHkvmhmb",
            "installedPackage": null,
            "lastModifiedBy": "10gd000000SDzgxNSckK",
            "lastModifiedBy.__objectType": "User",
            "lastModifiedBy.name": "test0xx",
            "lastModifiedDate": "2020-05-29 12:50:59",
            "name": "zhang",
            "owner": "10gd000000SDzgxNSckK",
            "owner.__objectType": "User",
            "owner.name": "test0xx"
        },
        {
            "TestProject__age__CST": null,
            "TestProject__length__CST": "456",
            "TestProject__name__CST": null,
            "createdBy": "10gd000000SDzgxNSckK",
            "createdBy.__objectType": "User",
            "createdBy.name": "test0xx",
            "createdDate": "2020-05-29 12:50:59",
            "currencyIsoCode": "",
            "id": "cglE000000aMGHkvmhma",
            "installedPackage": null,
            "lastModifiedBy": "10gd000000SDzgxNSckK",
            "lastModifiedBy.__objectType": "User",
            "lastModifiedBy.name": "test0xx",
            "lastModifiedDate": "2020-05-29 12:50:59",
            "name": "zhang",
            "owner": "10gd000000SDzgxNSckK",
            "owner.__objectType": "User",
            "owner.name": "test0xx"
        },
        {
            "TestProject__age__CST": null,
            "TestProject__length__CST": "17",
            "TestProject__name__CST": null,
            "createdBy": "10gd000000SDzgxNSckK",
            "createdBy.__objectType": "User",
            "createdBy.name": "test0xx",
            "createdDate": "2020-05-29 12:43:11",
            "currencyIsoCode": "",
            "id": "cglE000000aMFjB9ipAu",
            "installedPackage": null,
            "lastModifiedBy": "10gd000000SDzgxNSckK",
            "lastModifiedBy.__objectType": "User",
            "lastModifiedBy.name": "test0xx",
            "lastModifiedDate": "2020-05-29 12:43:11",
            "name": "zhang",
            "owner": "10gd000000SDzgxNSckK",
            "owner.__objectType": "User",
            "owner.name": "test0xx"
        }
    ],
    "count": 5
}

状态码

状态码请参见状态码

错误码

错误码请参见错误码

相关文档