{
"page": 1,
"size": 20,
"onlyCount": false,
"criteria": {
"age": {
"$gt": 21
}
},
"orders": [
{
"column": "name",
"asc": false
}
],
"withColumns": [ "roles" ]
}
返回格式
{
"result": "success",
"data": [
{
"id": "dev_1",
"groupCode": "PG",
"type": "major",
"name": "专业",
"description": "Testing",
"status": 1,
"createTime": 1602434380000,
"createUser": "wdl",
"updateTime": 1602705427000,
"updateUser": "wdl",
"remark": "Testing"
}
],
"count": 1
}
参数说明
字段 | 说明 | |
---|---|---|
page | 分页页码,从 1 开始 | |
size | 分页大小 | |
onlyCount | 是否只统计数量,默认 false | |
criteria | 查询条件 | |
orders | object[] | 排序参数,支持多个字段排序 |
column | 排序字段 | |
asc | 是否升序,默认 true | |
withColumns | 额外返回的扩展字段清单 | |
符号 | 说明 |
---|---|
\$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
}
}
}
查询 name 为 zhangsan、lisi 的数据
{
"criteria": {
"name": {
"$in": [ "zhangsan", "lisi" ]
}
}
}
也可直接写成
{
"criteria": {
"name": [ "zhangsan", "lisi" ]
}
}
查询 name 以 zh 开头的数据
{
"criteria": {
"name": {
"$like": "zh%"
}
}
}
通过 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" ]
}
特别说明:
1.业务含义不可靠,目前除"查询绑定了某个表号功能号的对象"这一个场景外暂时没有合理使用该查询的业务场景
2.性能差!性能差!性能差!
{
"criteria": {
"$search": "关键字"
}
}
1.直接放在criteria下,只能对字符串字段进行查询
2.支持通配符%, 如"%abc%"将返回信息点的值中包含abc的对象
3.固定字段(id,localId,name,localName,classCode...等)无效
4.信息点的值可能是对象,若对象的属性符合条件则该对象也将被返回
特别说明:
1.业务含义不可靠,使用该查询之前务必搞清楚自己的目的是什么
2.性能差!性能差!性能差!
{
"criteria": {
"arr": {
"$contains": "1"
},
"arr2": {
"$contains": [1, 3, 5]
}
}
}
1.直只能对复数信息点进行查询
2.只要数组包含条件对应的值即查询条件成立,如[1,2,3]对1成立, [1,2,3]对[1,2]成立, [[1,2,3], [4,5,6]]对[1]成立, [[1,2,3], [4,5,6]]对[1,2]成立,[[1,2,3], [4,5,6]]对[1,5]成立
3.固定字段(id,localId,name,localName,classCode...等)无效
4.$notcontains含义与$contains相反,但是首先要求查询字段有值