筛选器
为了满足复杂的数据查询需求,伙伴云对查询数据的条件做了一次抽象,提炼出 筛选器 对象的概念。在伙伴云的接口中,筛选器 对象被广泛地使用,包括数据查询,表格行权限,关联数据条件等等场景。
筛选器示例
以下是一个标准的筛选器的数据结构:
{
"and": [
{
"field": 7256086,
"query": {
"eq": "测试"
}
},
{
"or": [
{
"field": 7256086,
"query": {
"in": [1, 2, 3]
}
},
{
"field": "7256086",
"query": {
"em": true
}
}
]
}
]
}
数据结构
筛选项
筛选器的最小单位是 筛选项 对象,一个标准的 筛选项 对象如下所示:
{
"field": 7256086,
"query": {
"eq": "匹配的字符"
}
}
字段说明
字段名称 | 字段说明 |
---|---|
field | 筛选的字段,可以是表格普通字段也可以是数据的系统字段(如创建时间等) |
query | 筛选的查询条件,详情会在后续针对不同的表格字段单独说明 |
筛选逻辑
筛选器可以通过 筛选逻辑 对象组合出满足各种场景的查询条件。一个简单的带 筛选逻辑 的筛选器如下所示:
{
"and": [
{
"field": 7256086,
"query": {
"eq": "匹配的字符"
}
},
{
"field": 7256087,
"query": {
"in": [1, 2, 3]
}
}
]
}
目前 筛选逻辑 支持的逻辑关键字包括:and
和 or
,关键字是由 筛选项 或 筛选逻辑 组成的集合,每个集合组合出的条件逻辑遵循关键字表达逻辑。
假设我们有以下的查询条件:
A AND (B OR C)
转换为筛选器后的数据结构如下:
{
"and": [
A,
{
"or": [
B,
C
]
}
]
}
应用场景
伙伴云的表格中不同的字段所能使用的 筛选项 中的查询条件(query)是不同的。
数据唯一标识字段
QUERY 关键字 | 示例 | 示例说明 |
---|---|---|
eq | "eq": "2000" | 匹配等于 ID=2000 的数据 |
ne | "ne": "2000" | 匹配不等于 ID=2000 的数据 |
in | "in": ["2000", "2001"] | 匹配包含 ID=2000 或 ID=2001 的数据 |
nin | "nin": ["2000", "2001"] | 匹配不包含 ID=2000 或 ID=2001 的数据 |
创建人/用户字段
QUERY 关键字 | 示例 | 示例说明 |
---|---|---|
eq | "eq": ["1000"] | 匹配等于 ID=1000 的用户的数据 |
ne | "ne": ["1000"] | 匹配不等于 ID=1000 的用户的数据 |
in | "in": ["1000", "1001"] | 匹配包含 ID=1000 或 ID=1001 的用户的数据 |
nin | "nin": ["1000", "1001"] | 匹配不包含 ID=1000 或 ID=1001 的用户的数据 |
em | "em" : true | 匹配值为空的数据(创建人无效) |
用户字段支持的变量:
myself
当前登录用户
创建时间/时间字段
QUERY 关键字 | 示例 | 示例说明 |
---|---|---|
eq | "eq": "2015-05-11" | 匹配等于2015年5月11日的数据 |
ne | "ne": "2015-05-11" | 匹配不等于2015年5月11日的数据 |
gt | "gt": "2015-05-11" | 匹配大于2015年5月11日的数据 |
gte | "gte": "2015-05-11" | 匹配大等于2015年5月11日的数据 |
lt | "lt": "2015-05-11" | 匹配小于2015年5月11日的数据 |
lte | "lte": "2015-05-11" | 匹配小等于2015年5月11日的数据 |
em | "em" : true | 匹配值为空的数据(创建时间无效) |
时间字段支持的变量:
today
当前日期yesterday
当前日期的前一天tomorrow
当前日期的后一天last_week
过去的7天last_month
过去的30天next_week
未来的7天next_month
未来的30天this_whole_month
当前月last_whole_month
上月next_whole_month
下月this_quarter
当前季度last_quarter
上一季度next_quarter
下一季度
文本字段
QUERY 关键字 | 示例 | 示例说明 |
---|---|---|
eq | "eq": "匹配的文本" | 匹配等于“匹配的文本”的数据 |
ne | "ne": "匹配的文本" | 匹配不等于“匹配的文本”的数据 |
in | "in" : ["匹配的文本1", "匹配的文本2"] | 匹配包含 “匹配的文本1” 或 “匹配的文本2” 的文本的数据 |
nin | "nin" : ["匹配的文本1", "匹配的文本2"] | 匹配不包含 “匹配的文本1” 或 “匹配的文本2” 的文本的数据 |
em | "em" : true | 匹配值为空的数据 |
数字字段/计算字段
QUERY 关键字 | 示例 | 示例说明 |
---|---|---|
eq | "eq": 20 | 匹配等于20的数据 |
ne | "ne": 20 | 匹配不等于20的数据 |
gt | "gt": 20 | 匹配大于20的数据 |
gte | "gte": 20 | 匹配大等于20的数据 |
lt | "lt": 20 | 匹配小于20的数据 |
lte | "lte": 20 | 匹配小等于20的数据 |
em | "em" : true | 匹配值为空的数据 |
选项字段
QUERY 关键字 | 示例 | 示例说明 |
---|---|---|
eq | "eq": ["1"] | 匹配等于 ID=1 的选项的数据 |
ne | "ne": ["1"] | 匹配不等于 ID=1 的选项的数据 |
in | "in": ["1", "2"] | 匹配包含 ID=1 或 ID=2 的选项的数据 |
nin | "nin": ["1", "2"] | 匹配不包含 ID=1000 或 ID=2 的选项的数据 |
em | "em" : true | 匹配值为空的数据 |
关联字段
QUERY 关键字 | 示例 | 示例说明 |
---|---|---|
eq | "eq": ["2000"] | 匹配等于 ID=2000 的关联数据的数据 |
ne | "ne": ["2000"] | 匹配不等于 ID=2000 的关联数据的数据 |
in | "in": ["2000", "2001"] | 匹配包含 ID=2000 或 ID=2001 的关联数据的数据 |
nin | "nin": ["2000", "2001"] | 匹配不包含 ID=2000 或 ID=2001 的关联数据的数据 |
em | "em" : true | 匹配值为空的数据 |
图片字段/附件字段
QUERY 关键字 | 示例 | 示例说明 |
---|---|---|
em | "em" : true | 匹配值为空的数据 |