logologo
Початок
Посібник
Розробка
Плагіни
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Початок
Посібник
Розробка
Плагіни
API
logologo
Огляд API

@nocobase/auth

AuthManager
Автентифікація
BaseAuth

@nocobase/cache

CacheManager
Кеш

@nocobase/cli

NocoBase CLI
Глобальні змінні середовища

@nocobase/client

application
Плагін

@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
FlowModel
Ресурс робочого процесу

@nocobase/logger

Логер

@nocobase/server

AppCommand
Застосунок
AuditManager
Контекст
Міграція
Плагін

@nocobase/sdk

Auth
Сховище
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

Логічне AND. Еквівалентно SQL-оператору AND.

Приклад

repository.find({
  filter: {
    $and: [{ title: 'Книга Пісень' }, { isbn: '1234567890' }],
  },
});

#$or

Логічне OR. Еквівалентно SQL-оператору OR.

Приклад

repository.find({
  filter: {
    $or: [{ title: 'Книга Пісень' }, { publishedAt: { $lt: '0000-00-00T00:00:00Z' } }],
  },
});

#Оператори для полів булевого типу

Використовуються для полів булевого типу type: 'boolean'

#$isFalsy

Перевіряє, чи є значення булевого поля хибним (falsy). Значення поля false, 0 та NULL вважаються $isFalsy: true.

Приклад

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

#$isTruly

Перевіряє, чи є значення булевого поля істинним (truly). Значення поля true та 1 вважаються $isTruly: true.

Приклад

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],
    },
  },
});

#Оператори для полів рядкового типу

Використовуються для полів рядкового типу, включаючи string

#$includes

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

Приклад

repository.find({
  filter: {
    title: {
      $includes: 'Трисимвольна класика',
    },
  },
});

#$notIncludes

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

Приклад

repository.find({
  filter: {
    title: {
      $notIncludes: 'Трисимвольна класика',
    },
  },
});

#$startsWith

Перевіряє, чи починається рядкове поле з вказаного підрядка.

Приклад

repository.find({
  filter: {
    title: {
      $startsWith: 'Трисимвольна класика',
    },
  },
});

#$notStatsWith

Перевіряє, чи не починається рядкове поле з вказаного підрядка.

Приклад

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,
    },
  },
});