logologo
Начало
Руководство
Разработка
Плагины
API
Главная
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Начало
Руководство
Разработка
Плагины
API
Главная
logologo
Обзор API

@nocobase/auth

AuthManager
Auth
BaseAuth

@nocobase/cache

CacheManager
Кэш

@nocobase/cli

NocoBase CLI
Глобальные переменные окружения

@nocobase/client

Приложение
Плагин

@nocobase/database

Коллекция
Поле

interfaces

BaseInterface
Операторы фильтрации

RelationRepository

BelongsToManyRepository
belongs-to-repository
HasManyRepository
HasOneRepository
Репозиторий

shared

create-options
destroy-options
find-one
find-options
transaction
update-options

@nocobase/data-source-manager

DataSourceManager
DataSource (абстрактный)
ICollectionManager
ICollection
IField
IModel
IRepository

@nocobase/flow-engine

Менеджер источников данных
Контекст потока
FlowEngine
Модель потока
Ресурс рабочего процесса

@nocobase/logger

Логгер

@nocobase/server

AppCommand
Приложение
AuditManager
Контекст
Миграция
Плагин

@nocobase/sdk

Auth
Storage
Previous PageBaseInterface
Next PageRelationRepository
Уведомление о переводе ИИ

Эта документация была автоматически переведена ИИ.

#Операторы фильтрации

Используются в параметре filter для таких API репозитория, как find, findOne, findAndCount, count:

const repository = db.getRepository('books');

repository.find({
  filter: {
    title: {
      $eq: '春秋',
    },
  },
});

Для поддержки JSON-сериализации NocoBase обозначает операторы запросов строками с префиксом $.

Кроме того, NocoBase предоставляет API для расширения операторов. Подробнее см. в db.registerOperators().

#Общие операторы

#$eq

Проверяет, равно ли значение поля указанному значению. Эквивалентно SQL-оператору =.

Пример

repository.find({
  filter: {
    title: {
      $eq: '春秋',
    },
  },
});

Эквивалентно title: '春秋'.

#$ne

Проверяет, не равно ли значение поля указанному значению. Эквивалентно SQL-оператору !=.

Пример

repository.find({
  filter: {
    title: {
      $ne: '春秋',
    },
  },
});

#$is

Проверяет, является ли значение поля указанным значением. Эквивалентно SQL-оператору IS.

Пример

repository.find({
  filter: {
    title: {
      $is: null,
    },
  },
});

#$not

Проверяет, не является ли значение поля указанным значением. Эквивалентно SQL-оператору IS NOT.

Пример

repository.find({
  filter: {
    title: {
      $not: null,
    },
  },
});

#$col

Проверяет, равно ли значение поля значению другого поля. Эквивалентно SQL-оператору =.

Пример

repository.find({
  filter: {
    title: {
      $col: 'name',
    },
  },
});

#$in

Проверяет, содержится ли значение поля в указанном массиве. Эквивалентно SQL-оператору IN.

Пример

repository.find({
  filter: {
    title: {
      $in: ['春秋', '战国'],
    },
  },
});

#$notIn

Проверяет, не содержится ли значение поля в указанном массиве. Эквивалентно SQL-оператору NOT IN.

Пример

repository.find({
  filter: {
    title: {
      $notIn: ['春秋', '战国'],
    },
  },
});

#$empty

Проверяет, пусто ли поле. Для строкового поля это означает пустую строку, для поля-массива — пустой массив.

Пример

repository.find({
  filter: {
    title: {
      $empty: true,
    },
  },
});

#$notEmpty

Проверяет, не пусто ли поле. Для строкового поля это означает непустую строку, для поля-массива — непустой массив.

Пример

repository.find({
  filter: {
    title: {
      $notEmpty: true,
    },
  },
});

#Логические операторы

#$and

Логическое И. Эквивалентно SQL-оператору AND.

Пример

repository.find({
  filter: {
    $and: [{ title: '诗经' }, { isbn: '1234567890' }],
  },
});

#$or

Логическое ИЛИ. Эквивалентно SQL-оператору OR.

Пример

repository.find({
  filter: {
    $or: [{ title: '诗经' }, { publishedAt: { $lt: '0000-00-00T00:00:00Z' } }],
  },
});

#Операторы для полей булева типа

Используются для полей булева типа (type: 'boolean').

#$isFalsy

Проверяет, является ли значение булева поля ложным (falsy). Значения поля false, 0 и NULL считаются ложными.

Пример

repository.find({
  filter: {
    isPublished: {
      $isFalsy: true,
    },
  },
});

#$isTruly

Проверяет, является ли значение булева поля истинным (truly). Значения поля true и 1 считаются истинными.

Пример

repository.find({
  filter: {
    isPublished: {
      $isTruly: true,
    },
  },
});

#Операторы для числовых полей

Используются для числовых полей, включая:

  • type: 'integer'
  • type: 'float'
  • type: 'double'
  • type: 'real'
  • type: 'decimal'

#$gt

Проверяет, больше ли значение поля указанного значения. Эквивалентно SQL-оператору >.

Пример

repository.find({
  filter: {
    price: {
      $gt: 100,
    },
  },
});

#$gte

Проверяет, больше или равно ли значение поля указанному значению. Эквивалентно SQL-оператору >=.

Пример

repository.find({
  filter: {
    price: {
      $gte: 100,
    },
  },
});

#$lt

Проверяет, меньше ли значение поля указанного значения. Эквивалентно SQL-оператору <.

Пример

repository.find({
  filter: {
    price: {
      $lt: 100,
    },
  },
});

#$lte

Проверяет, меньше или равно ли значение поля указанному значению. Эквивалентно SQL-оператору <=.

Пример

repository.find({
  filter: {
    price: {
      $lte: 100,
    },
  },
});

#$between

Проверяет, находится ли значение поля между двумя указанными значениями. Эквивалентно SQL-оператору BETWEEN.

Пример

repository.find({
  filter: {
    price: {
      $between: [100, 200],
    },
  },
});

#$notBetween

Проверяет, не находится ли значение поля между двумя указанными значениями. Эквивалентно SQL-оператору NOT BETWEEN.

Пример

repository.find({
  filter: {
    price: {
      $notBetween: [100, 200],
    },
  },
});

#Операторы для строковых полей

Используются для строковых полей (type: 'string').

#$includes

Проверяет, содержит ли строковое поле указанную подстроку.

Пример

repository.find({
  filter: {
    title: {
      $includes: '三字经',
    },
  },
});

#$notIncludes

Проверяет, не содержит ли строковое поле указанную подстроку.

Пример

repository.find({
  filter: {
    title: {
      $notIncludes: '三字经',
    },
  },
});

#$startsWith

Проверяет, начинается ли строковое поле с указанной подстроки.

Пример

repository.find({
  filter: {
    title: {
      $startsWith: '三字经',
    },
  },
});

#$notStartsWith

Проверяет, не начинается ли строковое поле с указанной подстроки.

Пример

repository.find({
  filter: {
    title: {
      $notStatsWith: '三字经',
    },
  },
});

#$endsWith

Проверяет, заканчивается ли строковое поле указанной подстрокой.

Пример

repository.find({
  filter: {
    title: {
      $endsWith: '三字经',
    },
  },
});

#$notEndsWith

Проверяет, не заканчивается ли строковое поле указанной подстрокой.

Пример

repository.find({
  filter: {
    title: {
      $notEndsWith: '三字经',
    },
  },
});

#$like

Проверяет, содержит ли значение поля указанную строку. Эквивалентно SQL-оператору LIKE.

Пример

repository.find({
  filter: {
    title: {
      $like: '计算机',
    },
  },
});

#$notLike

Проверяет, не содержит ли значение поля указанную строку. Эквивалентно SQL-оператору NOT LIKE.

Пример

repository.find({
  filter: {
    title: {
      $notLike: '计算机',
    },
  },
});

#$iLike

Проверяет, содержит ли значение поля указанную строку без учета регистра. Эквивалентно SQL-оператору ILIKE (только для PostgreSQL).

Пример

repository.find({
  filter: {
    title: {
      $iLike: 'Computer',
    },
  },
});

#$notILike

Проверяет, не содержит ли значение поля указанную строку без учета регистра. Эквивалентно SQL-оператору NOT ILIKE (только для PostgreSQL).

Пример

repository.find({
  filter: {
    title: {
      $notILike: 'Computer',
    },
  },
});

#$regexp

Проверяет, соответствует ли значение поля указанному регулярному выражению. Эквивалентно SQL-оператору REGEXP (только для PostgreSQL).

Пример

repository.find({
  filter: {
    title: {
      $regexp: '^计算机',
    },
  },
});

#$notRegexp

Проверяет, не соответствует ли значение поля указанному регулярному выражению. Эквивалентно SQL-оператору NOT REGEXP (только для PostgreSQL).

Пример

repository.find({
  filter: {
    title: {
      $notRegexp: '^计算机',
    },
  },
});

#$iRegexp

Проверяет, соответствует ли значение поля указанному регулярному выражению без учета регистра. Эквивалентно SQL-оператору ~* (только для PostgreSQL).

Пример

repository.find({
  filter: {
    title: {
      $iRegexp: '^COMPUTER',
    },
  },
});

#$notIRegexp

Проверяет, не соответствует ли значение поля указанному регулярному выражению без учета регистра. Эквивалентно SQL-оператору !~* (только для PostgreSQL).

Пример

repository.find({
  filter: {
    title: {
      $notIRegexp: '^COMPUTER',
    },
  },
});

#Операторы для полей типа "дата"

Используются для полей типа "дата" (type: 'date').

#$dateOn

Проверяет, приходится ли дата поля на указанный день.

Пример

repository.find({
  filter: {
    createdAt: {
      $dateOn: '2021-01-01',
    },
  },
});

#$dateNotOn

Проверяет, не приходится ли дата поля на указанный день.

Пример

repository.find({
  filter: {
    createdAt: {
      $dateNotOn: '2021-01-01',
    },
  },
});

#$dateBefore

Проверяет, предшествует ли дата поля указанному значению. Эквивалентно "меньше" переданного значения даты.

Пример

repository.find({
  filter: {
    createdAt: {
      $dateBefore: '2021-01-01T00:00:00.000Z',
    },
  },
});

#$dateNotBefore

Проверяет, не предшествует ли дата поля указанному значению. Эквивалентно "больше или равно" переданного значения даты.

Пример

repository.find({
  filter: {
    createdAt: {
      $dateNotBefore: '2021-01-01T00:00:00.000Z',
    },
  },
});

#$dateAfter

Проверяет, следует ли дата поля за указанным значением. Эквивалентно "больше" переданного значения даты.

Пример

repository.find({
  filter: {
    createdAt: {
      $dateAfter: '2021-01-01T00:00:00.000Z',
    },
  },
});

#$dateNotAfter

Проверяет, не следует ли дата поля за указанным значением. Эквивалентно "меньше или равно" переданного значения даты.

Пример

repository.find({
  filter: {
    createdAt: {
      $dateNotAfter: '2021-01-01T00:00:00.000Z',
    },
  },
});

#Операторы для полей типа "массив"

Используются для полей типа "массив" (type: 'array').

#$match

Проверяет, соответствует ли значение поля-массива значениям в указанном массиве.

Пример

repository.find({
  filter: {
    tags: {
      $match: ['文学', '历史'],
    },
  },
});

#$notMatch

Проверяет, не соответствует ли значение поля-массива значениям в указанном массиве.

Пример

repository.find({
  filter: {
    tags: {
      $notMatch: ['文学', '历史'],
    },
  },
});

#$anyOf

Проверяет, содержит ли значение поля-массива хотя бы одно из значений в указанном массиве.

Пример

repository.find({
  filter: {
    tags: {
      $anyOf: ['文学', '历史'],
    },
  },
});

#$noneOf

Проверяет, не содержит ли значение поля-массива ни одного из значений в указанном массиве.

Пример

repository.find({
  filter: {
    tags: {
      $noneOf: ['文学', '历史'],
    },
  },
});

#$arrayEmpty

Проверяет, пуст ли массив поля.

Пример

repository.find({
  filter: {
    tags: {
      $arrayEmpty: true,
    },
  },
});

#$arrayNotEmpty

Проверяет, не пуст ли массив поля.

Пример

repository.find({
  filter: {
    tags: {
      $arrayNotEmpty: true,
    },
  },
});

#Операторы для полей связей

Используются для проверки существования связи. Типы полей включают:

  • type: 'hasOne'
  • type: 'hasMany'
  • type: 'belongsTo'
  • type: 'belongsToMany'

#$exists

Проверяет наличие связанных данных.

Пример

repository.find({
  filter: {
    author: {
      $exists: true,
    },
  },
});

#$notExists

Проверяет отсутствие связанных данных.

Пример

repository.find({
  filter: {
    author: {
      $notExists: true,
    },
  },
});