公共存储查询、更新、删除接口支持传递condition参数做数据的过滤,目前支持以下条件配置:
=,>,>=,<,<=,!=IN,NOT INLIKE,NOT LIKEAND,OR多级嵌套
# 基础条件配置
所有基础条件,均可以使用以下语法表示。其中:
field1,field2为条件对应的字段名,他们之间是AND的关系op是当前字段对应的条件,取值范围为=,>,>=,<,<=,!=,IN,NOT IN,LIKE,NOT LIKEval为条件对应的值,如果是op为IN或者NOT IN,要求为数组,其他均为数字或字符串
例如下面的条件等价于WHERE field1='tapd' AND field2 IN (138, 156)。
"condition": {
"field1": {
"op": "=",
"val": "tapd"
},
"field2": {
"op": "IN",
"val": [138, 156]
}
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 便捷使用
对常用的条件=和IN提供了便捷的配置方式。
condition对象中使用键值对,其中键为条件对应的字段名,值如果是常量,会构造=条件,值如果是数组类型,会构造IN条件。
例如下面的条件等价于WHERE field1='tapd' AND field2 IN (138, 156)。
"condition": {
"field1": "tapd",
"field2": [138, 156]
}
1
2
3
4
2
3
4
# 嵌套条件
如果希望构造更复杂的条件,包括OR、多级嵌套,需要使用如下语法。
AND: 多个子条件之间使用AND连接OR: 多字子条件之间使用OR连接
# AND
下面的条件配置等价于基础条件配置中的示例,看起来似乎变得更复杂,但可能会使构造条件的过程更加清晰。
"condition": {
"AND": [
{
"field1": "tapd"
},
{
"field2": [138, 156]
}
]
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# OR
下面的条件配置等价于WHERE field1="tapd" OR field2 IN (138, 156)。
"condition": {
"OR": [
{
"field1": "tapd"
},
{
"field2": [138, 156]
}
]
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 复杂嵌套
更复杂的场景是, 可能需要构造由多个OR、AND嵌套组成的条件,例如WHERE (field1="tapd" OR field2 IN (138, 156) OR (field3 LIKE "tapd%" AND field4>100)) AND field5!=0可以使用如下的条件表示。
"condition": {
"OR": [
{
"field1": "tapd"
},
{
"field2": [138, 156]
},
{
"field3": {
"op": "LIKE",
"val": "tapd%"
},
"field4": {
"op": ">",
"val": "100"
}
}
],
"field5": {
"op": "!=",
"val": 0
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24