# 过滤条件 ## 表达式 ### 关系表达式 | 关系 | 运算符 | 语法 | |:--:|:--:|:--:| | 等于 | = | 属性名 = 值 | | 不等于 | != | 属性名 != 值 | | 大于 | > | 属性名 > 值 | | 大于等于 | >= | 属性名 >= 值 | | 小于 | < | 属性名 < 值 | | 小于等于 | <= | 属性名 <= 值 | | 包含 | 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 ,查询完成贴码、带换码和带撕码的设备。