公共存储查询、更新、删除接口支持传递condition参数做数据的过滤,目前支持以下条件配置:
=
,>
,>=
,<
,<=
,!=
IN
,NOT IN
LIKE
,NOT LIKE
AND
,OR
多级嵌套
# 基础条件配置
所有基础条件,均可以使用以下语法表示。其中:
field1
,field2
为条件对应的字段名,他们之间是AND的关系op
是当前字段对应的条件,取值范围为=
,>
,>=
,<
,<=
,!=
,IN
,NOT IN
,LIKE
,NOT LIKE
val
为条件对应的值,如果是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