Операторы фильтрации
Используются в параметре filter для таких API репозитория, как find, findOne, findAndCount, count:
Для поддержки 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
Логическое И. Эквивалентно SQL-оператору AND.
Пример
$or
Логическое ИЛИ. Эквивалентно SQL-оператору OR.
Пример
Операторы для полей булева типа
Используются для полей булева типа (type: 'boolean').
$isFalsy
Проверяет, является ли значение булева поля ложным (falsy). Значения поля false, 0 и NULL считаются ложными.
Пример
$isTruly
Проверяет, является ли значение булева поля истинным (truly). Значения поля true и 1 считаются истинными.
Пример
Операторы для числовых полей
Используются для числовых полей, включая:
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.
Пример
Операторы для строковых полей
Используются для строковых полей (type: 'string').
$includes
Проверяет, содержит ли строковое поле указанную подстроку.
Пример
$notIncludes
Проверяет, не содержит ли строковое поле указанную подстроку.
Пример
$startsWith
Проверяет, начинается ли строковое поле с указанной подстроки.
Пример
$notStartsWith
Проверяет, не начинается ли строковое поле с указанной подстроки.
Пример
$endsWith
Проверяет, заканчивается ли строковое поле указанной подстрокой.
Пример
$notEndsWith
Проверяет, не заканчивается ли строковое поле указанной подстрокой.
Пример
$like
Проверяет, содержит ли значение поля указанную строку. Эквивалентно SQL-оператору LIKE.
Пример
$notLike
Проверяет, не содержит ли значение поля указанную строку. Эквивалентно SQL-оператору NOT LIKE.
Пример
$iLike
Проверяет, содержит ли значение поля указанную строку без учета регистра. Эквивалентно SQL-оператору ILIKE (только для PostgreSQL).
Пример
$notILike
Проверяет, не содержит ли значение поля указанную строку без учета регистра. Эквивалентно SQL-оператору NOT ILIKE (только для PostgreSQL).
Пример
$regexp
Проверяет, соответствует ли значение поля указанному регулярному выражению. Эквивалентно SQL-оператору REGEXP (только для PostgreSQL).
Пример
$notRegexp
Проверяет, не соответствует ли значение поля указанному регулярному выражению. Эквивалентно SQL-оператору NOT REGEXP (только для PostgreSQL).
Пример
$iRegexp
Проверяет, соответствует ли значение поля указанному регулярному выражению без учета регистра. Эквивалентно SQL-оператору ~* (только для PostgreSQL).
Пример
$notIRegexp
Проверяет, не соответствует ли значение поля указанному регулярному выражению без учета регистра. Эквивалентно SQL-оператору !~* (только для PostgreSQL).
Пример
Операторы для полей типа "дата"
Используются для полей типа "дата" (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
Проверяет отсутствие связанных данных.
Пример

