富查询功能
最后更新时间:2020-10-26

富查询功能是平台提供给开发者,用于将查询内容做进一步延伸的功能。API请求参数中有如图所示字段,表示该接口支持富查询功能。

以查询用户列表接口为例,未添加富查询字段时,请求参数为GET /account-manage/v1/user

响应参数:

{
    "total": 2,
    "results": [{
        "verification": {
            "identityVerified": false,
            "cellphoneVerified": false,
            "emailVerified": false
        },
        "changePw": false,
        "companies": [
        "5e1d63c608584a0038******", 
        "5e1c1e659238d50038******"
        ],
        "aclGroups": [
        "rc:hub:aclgroup:16f8******", 
        "rc:hub:aclgroup:59f3******", 
        "rc:hub:aclgroup:25e7******", 
        "rc:hub:aclgroup:262b******"
        ],
        "departments": [
        "5e65e84d08704a0038******", 
        "5e65e885a3a822003e******", 
        "5e65e89108704a0038******", 
        "5e65e89da3a822003e******", 
        "5ebd211bf746c3003f******"
        ],
        "roles": [],
        "username": "admin_chen",
        "cellphone": "183148*****",
        "createdAt": "2020-01-14T06:46:31.088Z",
        "updatedAt": "2020-07-27T09:55:19.684Z",
        "metadata": {
            "userDetails": {
                "pictureUrl": "/static/images/avatar/user.png",
                "sex": "M",
                "birthday": "2020/03/10",
                "detailAddress": ""
            }
        },
        "updatedBy": "1",
        "mainCompany": "5e1d63c608584a0038******",
        "displayName": "Ceshi@12******",
        "id": "5e1d63c708584a00385******"
    },
    {
        "verification": {
            "identityVerified": false,
            "cellphoneVerified": false,
            "emailVerified": false
        },
        "changePw": true,
        "companies": ["5e1d63c608584a0038******"],
        "aclGroups": [],
        "departments": [
        "5e65e84d08704a0038******", 
        "5e65e885a3a822003e******", 
        "5e65e89108704a0038******", 
        "5e65e89da3a822003e******"
        ],
        "roles": [],
        "displayName": "王树根",
        "metadata": {
            "userDetails": {
                "pictureUrl": ""
            },
            "createdClient": "web_app",
            "createdCompany": "5e1d63c608584a00385******"
        },
        "email": "******@rootcloud.com",
        "username": "rc_15958436******",
        "mainCompany": "5e1d63c608584a003******",
        "createdBy": "5e1d63c708584a0038******",
        "createdAt": "2020-07-27T09:54:15.832Z",
        "updatedAt": "2020-07-28T06:58:56.643Z",
        "updatedBy": "5e1d63c708584a003******",
        "id": "4b4******"
    }]
}

查出用户列表中总共有2个用户,并列举了每个用户的详细信息。若需要查询其中一个机构下的用户列表,可以将需要查询的机构ID作为富查询字段进行查找,机构对应的字段为departments,请求参数为GET /account-manage/v1/user?filter={"where":{"departments":"5e65e84d08704a00******"}},此时可以查出该机构下共有1个用户,并列举了用户的详细信息。

响应参数:

{
    "total": 1,
    "results": [{
        "verification": {
            "identityVerified": false,
            "cellphoneVerified": false,
            "emailVerified": false
        },
        "changePw": false,
        "companies": [
        "5e1d63c608584a003******", 
        "5e1c1e659238d5003******"
        ],
        "aclGroups": [
        "rc:hub:aclgroup:16f8******", 
        "rc:hub:aclgroup:59f******", 
        "rc:hub:aclgroup:25e******", 
        "rc:hub:aclgroup:262******"
        ],
        "departments": [
        "5e65e84d08704a003******", 
        "5e65e885a3a822003******", 
        "5e65e89108704a003******", 
        "5e65e89da3a822003******", 
        "5ebd211bf746c3003******"
        ],
        "roles": [],
        "username": "admin_chen",
        "cellphone": "183148******",
        "createdAt": "2020-01-14T06:46:31.088Z",
        "updatedAt": "2020-07-27T09:55:19.684Z",
        "metadata": {
            "userDetails": {
                "pictureUrl": "/static/images/avatar/user.png",
                "sex": "M",
                "birthday": "2020/03/10",
                "detailAddress": ""
            }
        },
        "updatedBy": "1",
        "mainCompany": "5e1d63c608584a******",
        "displayName": "Ceshi@1******",
        "id": "5e1d63c708584a003******"
    }]
}

富查询支持MongoDB的全部查询语法,具体请参见Query文档。下表中列举了部分常用的MongoDB查询语法,以如下用户数据为例:

{ _id: "001", roles: [ "a", "b" ] }
{ _id: "002", roles: [ "a", "c" ] }
{ _id: "003, roles: [ "a", "d" ] }
{ _id: "004", roles: [ "c", "b" ] }
{ _id: "005", roles: [ "e", "b" ] }
{ _id: "066", roles: [ "n", "m" ] }
{ _id: "666", roles: [ "n", "m" ] }
{ _id: "", roles: [ "n", "m" ] }

同时,富查询也支持语法嵌套使用,例如,查询不在任何机构或归属某个机构的用户时,可以添加富查询语句:

{
    "where": {
        "departments" {
            "$or": [{
                "$size": 0
            },
            {
                "$elemMatch": {
                    "$eq": "xxxxxxx"
                }
            }]
        }
    }
}