filters.md 5.1 KB

过滤条件

表达式

关系表达式

关系 运算符 语法
等于 = 属性名 = 值
不等于 != 属性名 != 值
大于 > 属性名 > 值
大于等于 >= 属性名 >= 值
小于 < 属性名 < 值
小于等于 <= 属性名 <= 值
包含 contain 属性名 contain 值
前缀 startwith 属性名 startwith 值
后缀 endwith 属性名 endwith 值
为空 isnull 属性名 isnull
在列表内 in 属性名 in [值1, 值2, 值3...]

::: warning 注意

  • 表达式必须包含“属性名”;
  • 属性名必须在表达式左端;
  • 在列表内的 [] 方括号中值类型必须一致,使用 in 必须使用 [] 方括号 :::

等于 =

  • 字符串类型,例如查询空调机组设备 category metadata json "Filters":" category = 'ATAH'"
  • 日期类型,例如查询 2020-08-12 创建的设备 createTime metadata json "Filters":" createTime = '2020-08-12'"
  • 数值类型,例如设备有贴码状态 0.完成贴码 1.待贴码 2.带换码 3.带撕码 codeType ,查询已完成的设备 metadata json "Filters":" codeType = 0 "
  • 布尔类型,例如设备有一个开关属性,实时记录设备是否在运转,停止运转时会把这个属性设置为 false ,查询为未开启的设备 switch metadata json "Filters":" switch = false "

不等于 !=

  • 字符串类型,例如查询空调机组类型以外的设备 category metadata json "Filters":" category != 'ATAH'"
  • 数值类型,例如设备有贴码状态 0.完成贴码 1.待贴码 2.带换码 3.带撕码 codeType ,查询待处理的设备 metadata json "Filters":" codeType != 0 "

大于 >

  • 数值类型,例如设备有贴码状态 0.完成贴码 1.待贴码 2.带换码 3.带撕码 codeType ,查询带换码和带撕码的设备 metadata json "Filters":" codeType > 1 "
  • 日期类型,例如查询 2020-08-12 以后创建的设备 createTime 前提是不包含 2020-08-12 这个日期的 metadata json "Filters":" createTime > '2020-08-12'"

大于等于 >=

  • 数值类型,例如设备有贴码状态 0.完成贴码 1.待贴码 2.带换码 3.带撕码 codeType ,查询待贴码、带换码和带撕码的设备 metadata json "Filters":" codeType >= 1 "
  • 日期类型,例如查询 2020-08-12 以后创建的设备 createTime 包含 2020-08-12 这个日期的 metadata json "Filters":" createTime >= '2020-08-12'"

小于 <

  • 数值类型,例如设备有贴码状态 0.完成贴码 1.待贴码 2.带换码 3.带撕码 codeType ,查询待贴码、完成贴码 metadata json "Filters":" codeType < 2 "
  • 日期类型,例如查询 2020-08-12 之前创建的设备 createTime 不包含 2020-08-12 这个日期的 metadata json "Filters":" createTime < '2020-08-12'"

小于等于 <=

  • 数值类型,例如设备有贴码状态 0.完成贴码 1.待贴码 2.带换码 3.带撕码 codeType ,查询待贴码、完成贴码和带换码的设备 metadata json "Filters":" codeType <= 2 "
  • 日期类型,例如查询 2020-08-12 之前创建的设备 createTime 包含 2020-08-12 这个日期的 metadata json "Filters":" createTime <= '2020-08-12'"

包含 contain

  • 字符串,例如查询设备本地名称中包含 “风机” 两个字的设备 EquipLocalName metadata json "Filters":" EquipLocalName contain '风机'"

前缀

只适用于字符串类型 例如设备 id 是以 Eq 开头,空间id是以 Sp 开头,区分设备和空间就需要根据前缀来获取 ```metadata json "Filters":" Id startwith 'Eq'"


#### 后缀
只适用于字符串类型
例如楼层的 FloorMap 信息点是存储底图 key 值的,可能是 jsonz 压缩数据的 key ,也可能是 png 、jpg,查询后缀为 jsonz 的楼层数据
```metadata json
"Filters":" floorMap endwith 'jsonz'"

判断某一个对象的某个信息点是否有值,例如查询本地名称为空的设备 ```metadata json "Filters":" EquipLocalName isnull "


#### 在...内
通常查询的时候会根据同一条件的多个值来获取数据,只适用于字符串类型
例如有一组设备的id列表,查询值这个把列表中的所有设备 ['id1','id2','id3','id4','id5']
```metadata json
"Filters":" EquipID in ['id1','id2','id3','id4','id5'] "
  • 数值类型,例如设备有贴码状态 0.完成贴码 1.待贴码 2.带换码 3.带撕码 codeType ,查询完成贴码、带换码和带撕码的设备。 metadata json "Filters":" codeType in [0,2,3] "

逻辑表达式

逻辑 运算符 语法
not
!
not 表达式
!表达式
&&
and
表达式1 && 表达式2
表达式1 and 表达式2
||
or
表达式1 || 表达式2
表达式1 or 表达式2
多表达式 ; 表达式1 ; 表达式2 ; 表大式3 ...

  • not 例如设备有贴码状态 0.完成贴码 1.待贴码 2.带换码 3.带撕码 codeType ,查询完成贴码、带换码和带撕码的设备。