Filter Operators
用于 Repository 的 find、findOne、findAndCount、count 等 API 的 filter 参数中:
为了支持 JSON 化,NocoBase 中将查询运算符以 $ 为前缀的字符串标识。
另外,NocoBase 也提供了扩展运算符的 API,详见 db.registerOperators()。
通用运算符
$eq
判断字段值是否相等于指定值。相当于 SQL 的 =。
示例
等同于 title: '春秋'。
$ne
判断字段值是否不等于指定值。相当于 SQL 的 !=。
示例
$is
判断字段值是否为指定值。相当于 SQL 的 IS。
示例
$not
判断字段值是否不为指定值。相当于 SQL 的 IS NOT。
示例
$col
判断字段值是否等于另一个字段的值。相当于 SQL 的 =。
示例
$in
判断字段值是否在指定数组中。相当于 SQL 的 IN。
示例
$notIn
判断字段值是否不在指定数组中。相当于 SQL 的 NOT IN。
示例
$empty
判断一般字段是否为空,如果是字符串字段,判断是否为空串,如果是数组字段,判断是否为空数组。
示例
$notEmpty
判断一般字段是否不为空,如果是字符串字段,判断是否不为空串,如果是数组字段,判断是否不为空数组。
示例
逻辑运算符
$and
逻辑 AND。相当于 SQL 的 AND。
示例
$or
逻辑 OR。相当于 SQL 的 OR。
示例
布尔类型字段运算符
用于布尔类型字段 type: 'boolean'
$isFalsy
判断布尔类型字段值是否为假。布尔字段值为 false、0 和 NULL 的情况都会被判断为 $isFalsy: true。
示例
$isTruly
判断布尔类型字段值是否为真。布尔字段值为 true 和 1 的情况都会被判断为 $isTruly: true。
示例
数字类型字段运算符
用于数字类型字段,包括:
type: 'integer'type: 'float'type: 'double'type: 'real'type: 'decimal'
$gt
判断字段值是否大于指定值。相当于 SQL 的 >。
示例
$gte
判断字段值是否大于等于指定值。相当于 SQL 的 >=。
示例
$lt
判断字段值是否小于指定值。相当于 SQL 的 <。
示例
$lte
判断字段值是否小于等于指定值。相当于 SQL 的 <=。
示例
$between
判断字段值是否在指定的两个值之间。相当于 SQL 的 BETWEEN。
示例
$notBetween
判断字段值是否不在指定的两个值之间。相当于 SQL 的 NOT BETWEEN。
示例
字符串类型字段运算符
用于字符串类型字段,包括 string
$includes
判断字符串字段是否包含指定子串。
示例
$notIncludes
判断字符串字段是否不包含指定子串。
示例
$startsWith
判断字符串字段是否以指定子串开头。
示例
$notStatsWith
判断字符串字段是否不以指定子串 开头。
示例
$endsWith
判断字符串字段是否以指定子串结尾。
示例
$notEndsWith
判断字符串字段是否不以指定子串结尾。
示例
$like
判断字段值是否包含指定的字符串。相当于 SQL 的 LIKE。
示例
$notLike
判断字段值是否不包含指定的字符串。相当于 SQL 的 NOT LIKE。
示例
$iLike
判断字段值是否包含指定的字符串,忽略大小写。相当 于 SQL 的 ILIKE(仅 PG 适用)。
示例
$notILike
判断字段值是否不包含指定的字符串,忽略大小写。相当于 SQL 的 NOT ILIKE(仅 PG 适用)。
示例
$regexp
判断字段值是否匹配指定的正则表达式。相当于 SQL 的 REGEXP(仅 PG 适用)。
示例
$notRegexp
判断字段值是否不匹配指定的正则表达式。相当于 SQL 的 NOT REGEXP(仅 PG 适用)。
示例
$iRegexp
判断字段值是否匹配指定的正则表达式,忽略大小写。相当于 SQL 的 ~*(仅 PG 适用)。
示例
$notIRegexp
判断字段值是否不匹配指定的正则表达式,忽略大小写。相当于 SQL 的 !~*(仅 PG 适用)。
示例
日期类型字段运算符
用于日期类型字段 type: 'date'
$dateOn
判断日期字段是否在某天内。
示例
$dateNotOn
判断日期字段是否不在某天内。
示例
$dateBefore
判断日期字段是否在某个值之前。相当于小于传入的日期值。
示例
$dateNotBefore
判断日期字段是否不在某个值之前。相当于大于等于传入的日期值。
示例
$dateAfter
判断日期字段是否在某个值之后。相当于大于传入的日期值。
示例
$dateNotAfter
判断日期字段是否不在某个值之后。相当于小于等于传入的日期值。
示例
数组类型字段运算符
用于数组类型字段 type: 'array'
$match
判断数组字段的值是否匹配指定数组中的值。
示例
$notMatch
判断数组字段的值是否不匹配指定数组中的值。
示例
$anyOf
判断数组字段的值是否包含指定数组中的任意值。
示例
$noneOf
判断数组字段的值是否不包含指定数组中的任意值。
示例
$arrayEmpty
判断数组字段是否为空。
示例
$arrayNotEmpty
判断数组字段是否不为空。
示例
关系字段类型运算符
用于判断关系是否存在,字段类型包括:
type: 'hasOne'type: 'hasMany'type: 'belongsTo'type: 'belongsToMany'
$exists
有关系数据
示例
$notExists
无关系数据
示例

