## 数据结构 ``` { "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" ] } ```