在查询中,填写的是一个json语句,主要包含下面的字段
- $select字段
- $cal字段
- $group字段
- $order字段
- $filter字段
- $limit字段
- $formula字段
- 组合字段
下面就详细的描述每个字段的含义以及其用法。
$select字段key为固定的"$select"。
value为一个数组,表示要筛选的列,数组元素可以是单一列名,也可以是列名和别名的描述信息。
- // {"$select":[{"$name":"姓名", "$as":"名字"}, "salary"]} //暂时还不能重命名
- {"$select":"*"}
复制代码 相当于SQL语句:
// select 姓名 as 名字,salary from tableA
select * from tableA
| 预览结果
$cal字段key为固定"$cal"
value为JSON数组,数组中对象为计算指标与字段名称的键值对和"$as"和别名键值对。
[td][tr][/tr]
$count | 汇总 | $distinctCount | 不同值的汇总 | $max | 最大 | $min | 最小 | $sum | 求和 | [/td][/tr]
[tr][td]- {"$cal":[{"$count":"年龄", "$as":"ca"},{"$count":"工龄"}]}
复制代码 相当于SQL语句:[/td][/tr]
[tr][td]- select count(年龄) as ca from tableName
复制代码 预览结果[/td][/tr]
[tr][td]
[/td][/tr]
[tr][td]$group字段[/td][/tr]
[tr][td]key为固定"$group"[/td][/tr]
[tr][td]value为JSON数组,为全部分组字段名称数组。[/td][/tr]
[tr][td]查询语句:[/td][/tr]
[tr][td]相当于SQL语句:[/td][/tr]
[tr][td]- select 工龄,年龄 from tableName GROUP BY "工龄","年龄"
复制代码 预览结果[/td][/tr]
[tr][td]
[/td][/tr]
[tr][td]$order字段[/td][/tr]
[tr][td]key为固定"$order"value为JSON数组,为全部分组字段名称与排序方式的对象数组其中1表示正序,-1表示倒序。[/td][/tr]
[tr][td]查询语句:[/td][/tr]
[tr][td]- {
- "$order": [
- {
- "年龄": 1
- },
- {
- "工龄": -1
- }
- ]
- }
复制代码 相当于SQl语句:[/td][/tr]
[tr][td]- select * from tableName Order BY 年龄 ASC,工龄 DESC
复制代码 预览结果[/td][/tr]
[tr][td]
[/td][/tr]
[tr][td]$filter字段[/td][/tr]
[tr][td]key为固定"$filter"value为JSON对象,为过滤条件对象过滤条件对象比较复杂,能够使用$and、$or进行逻辑关联下一层的过滤条件对象。最底层过滤条件对象key为下面表格的12中逻辑,value为字段名与真实值。或者后四个判断为null的逻辑,value为字段名。$eq | 等于 | $ne | 不等于 | $lt | 小于 | $le | 小于等于 | $gt | 大于 | $ge | 大于等于 | $notContains | 不包含 | $contains | 包含 | $endWith | 以。。。结尾 | $beginWith
| 以。。。开头 | $notEndWith
| 不以。。。结尾 | $notBeginWith
| 不以。。。开头
| $isNotNull
| 不为空
| $isNull
| 为空
| $isStringNotNull
| 字符串不为空
| $isStringNull
| 字符串为空
| {
"$filter":{
"$and":[
{
"$ge":{
"年龄":30
}
},
{
"$lt":{
"工龄":10
}
},
{
"$isNotNull":"id"
}
]
}
}
相当于SQL语句:
select * from tableName where 年龄>=30 and 工龄<10 and id is not NULL
| 预览结果
$limit字段key为固定的"$limit"。
value为一个json对象。
”$offset"的value值为指定从那一行开始
"$num"的value值为指定的返回行数
{
"$limit":{
"$offset":100,
"$num":200
}
}
| 相当于SQl语句:
select * from tableName limit 200 offset 100
| 预览结果
$formula字段$formula为一个JSON数组,每一个对象为一个计算指标。key为计算指标新生成的字段名,value为计算公式。计算公式见详情 [注:字段名区分大小写且前面要加$进行标识,使用到的字段名必须包含在select中]。{
"$select":"*",
"$formula":[
{"$name":"sum","$content":"sum($年龄,$工龄)"},
{"$name":"max","$content":"max($年龄,$工龄)"},
]
}
| 相当于SQL语句:
select *,sum(年龄,工龄)as sum,max(年龄,工龄)as max from tableName
| 预览结果
组合字段在json中可以同时使用多个字段进行
{
"$select":["年龄","工龄"],
"$filter":{
"$and":[
{"$gt":{"年龄":20}},{"$lt":{"年龄":40}}
]
},
"$order":[
{"年龄":-1 },
{"工龄":1}
],
"$formula":[
{"$name":"sum","$content":"sum($年龄,$工龄)"}
]
}
| 相当于SQL语句:
select 年龄,工龄,sum(年龄,工龄)as sum from tableName where 年龄>20 and 年龄<40 Order BY 年龄 DESC,工龄
| 预览结果
编辑于 2017-10-20 11:51
编辑于 2017-10-20 14:50
编辑于 2017-10-20 15:02
编辑于 2017-10-21 09:21
|