通用查询.md 3.5 KB

数据结构

{
    "page": 1,
    "size": 20,
    "onlyCount": false,
    "criteria": {
        "age": {
            "$gt": 21
        }
    },
    "orders": [
        {
            "column": "name",
            "asc": false
        }
    ],
    "withColumns": [ "roles" ]
}  

参数说明

字段 说明
page 分页页码,从1开始
size 分页大小
onlyCount 是否只统计数量,默认false
criteria 查询条件
orders object[] 排序参数,支持多个字段排序
column 排序字段
asc 是否升序,默认true
withColumns 额外返回的扩展字段清单

criteria说明

符号说明

符号 说明
$ne dayu
\$gt, \$gte, \$lt, \$lte 大于, 大于等于, 小于, 小于等于
\$in 范围查询
\$like, \$notlike 模糊匹配 不匹配
\$null 是否为空

以下实例针对的实体类型user如下

字段 类型
id int
name string
age int

相等

查询name为zhangsan的数据

{
    "criteria": {
        "name": "zhangsan"
    }
}

不等于

查询name不等于张三的数据

{
    "criteria": {
        "name": {
            "$ne": "zhangsan"
        }
    }
}

是否为空

查询name不为空的数据

{
    "criteria": {
        "name": {
            "$null": false
        }
    }
}

比较大小

查询age大于25小于35的数据

{
    "criteria": {
        "age": {
            "$gt": 25,
            "$lt": 35
        }
    }
}

in查询

查询name为zhangsan、lisi的数据

{
    "criteria": {
        "name": {
            "$in": [ "zhangsan", "lisi" ]
        }
    }
}

也可直接写成

{
    "criteria": {
        "name": [ "zhangsan", "lisi" ]
    }
}

模糊查询

查询name以zh开头的数据

{
    "criteria": {
        "name": {
            "$like": "zh%"
        }
    }
}

withColumns说明

通过withColumns可以控制返回的数据内容,可以一定程度上提供服务性能.

withColumns粒度比较粗,一般由服务提供者决定哪些字段可以通过withColumns来控制.

假设数据如下

{
    "name": "zhangsan",
    "age": 22,
    "roles": [ "administrator", "manager" ]
}

将roles设计为可选字段,由withColumns来管理,如果查询参数中有withColumns并包含roles,则返回roles字段

默认查询和返回的数据内容为

{
    "criteria": {
        "name": "zhangsan"
    }
}
{
    "name": "zhangsan",
    "age": 22
}

包含withColumns时的查询参数和返回的数据

{
    "criteria": {
        "name": "zhangsan"
    },
    "withColumns": [ "roles" ]
}
{
    "name": "zhangsan",
    "age": 22,
    "roles": [ "administrator", "manager" ]
}