过滤
1.字段过滤
当查询moment数据时,发送数据:
请求:
{
fetch(arg: "{ 'P88666_moment': {'id':1693190113987} }")
}
响应:
{
"data":{
"msg": "success",
"code": 200,
"P88666_moment": {
"update_time": "2023-08-28 10:35:13",
"update_user": "jcr",
"create_time": "2023-08-28 10:35:13",
"id": 1693190113987,
"create_user": "jcr",
"mDate": "2023-08-05",
"content": "今天又要下雨了",
"mass_content_control_status": "Y"
},
"ok": true
}
}
返回数据会把所有的字段都返回过来,这里这么多字段,如果我只想要content这个字段怎么办?可以这样请求
{
fetch(arg: "{
'P88666_moment': {
'id':1693190113987,
'@column': 'id,mDate,content'
}
}")
}
返回数据:
{
"data":{
"msg": "success",
"code": 200,
"P88666_moment": {
"id": 1693190113987,
"mDate": "2023-08-05",
"content": "今天又要下雨了"
},
"ok": true
}
}
@column
表示你要筛选出的字段,多个字段用逗号隔开。
2.数据过滤
查询列表数据时并不总是要查询所有的数据,当需要查询列表中符合一定条件的数据,就需要用到数据过滤了,主要有以下几种方法。
2.1逻辑运算
如查询符合 id 为指定数值的数据
请求:
{
fetch(arg: "{ '[]': { 'P88666_moment': { 'id{}':[1693190113987,1692757999911] } } }")
}
可查询出id为1692758038614,1692758038614的两条数据。这里可以逻辑运算符,比如 查询id 是 300 到 400 之间的,可使用"id&{}":">=300,<=400"
。
逻辑符号一共有三种,&
,|
,!
默认的逻辑关系是|
,也就是说"id|{}":"<=300,>=400"
和"id{}":"<=300,>=400"
等价。
!
主要用于反选,黑名单之类的,比如"id!{}":[12,15,32]
表示id
不在 12,15,32 内的其他数据。
还可以多个条件组合使用,如下所示,表示 id 在 10 到 40 之间,但是却不包含 12 的数据。
{
fetch(arg: "{ '[]': { 'P88666_moment': { 'id&{}':'>=10,<=40','id!{}':[12] } } }")
}
2.2模糊查询
{
fetch(arg: "{ '[]': { 'P88666_moment': { 'content$':'%今天%'} } }")
}
使用方式有多种:
keyword%
,以keyword
开头的字符串。
%keyword
,以keyword
结束的字符串。
%keyword%
,包含keyword
的字符串,如:keyword123
、123keyword
、123keyword123
%k%e%y%
,包含字母k
,e
,y
的字符串
还有一种比较便捷的方式,我们这里如果使用"content~":"keyword"
来代替"content$":"%keyword%"
,同样可以表示包含某字符串。
2.3正则匹配
{
fetch(arg: "{ '[]': { 'P88666_moment': { 'content?':'^[0-9]+$'} } }")
}
正则表达式^[0-9]+$
,查询content
为纯数字的数据,正则语法可参考MySQL 的正则语法。