AbstractТип состояния модели Model
ProtectedconstructorСоздает новый экземпляр модели. Инициализирует контекст приложения и параметры запроса (queryData)
Тип состояния модели Model
Контекст приложения (адаптер БД, логгер, метрики)
AbstractattributeLabelsОпределяет метки атрибутов модели Должен быть реализован в дочерних классах
Объект с метками атрибутов
ProtectedgetIdОпределяет имя первичного ключа таблицы. Ищет поле с меткой 'id' или 'ID'
Имя первичного ключа или null
ProtectedgetUniqueKeysВозвращает поля, которые вместе с первичным ключом однозначно определяют запись.
Переопределите, если значение первичного ключа уникально только в паре
с другим полем (как userId у UsersData — в пределах платформы).
Эти поля попадают в условие selectOne/update/remove и в IQuery.uniqueKeys.
Имена дополнительных ключевых полей (по умолчанию — пусто)
Выполняет произвольный запрос к базе данных
Типы client/db зависят от подключённого адаптера БД —
для MongoAdapter это MongoClient и Db из драйвера mongodb.
Для FileAdapter _query не реализован — метод вернёт null.
Функция обратного вызова для выполнения запроса
Результат выполнения запроса
import type { MongoClient, Db } from 'mongodb';
const result = await model.query(async (client: MongoClient, db: Db) => {
const collection = db.collection('users');
return await collection.aggregate([
{ $match: { age: { $gt: 18 } } },
{ $group: { _id: '$city', count: { $sum: 1 } } }
]).toArray();
});
AbstractrulesОпределяет правила валидации для полей модели Должен быть реализован в дочерних классах
Массив правил валидации
Сохраняет данные модели в базу данных Если запись существует - обновляет, иначе создает новую
Флаг создания новой записи
Promise с результатом операции
Выполняет поиск записи по первичному ключу
Promise с результатом запроса
AbstracttableNameВыполняет произвольный запрос к базе данных
Условия запроса
Флаг выборки одной записи
Promise с результатом запроса
Выполняет запрос с выборкой одной записи
Условия запроса
Promise
Protected_appContextКонтекст приложения.
Объект для хранения параметров запроса. Содержит условия поиска и данные для обновления
Начальный индекс для итерации по данным. Используется при инициализации модели из массива
Состояние модели. Содержит текущие значения всех атрибутов
Абстрактный класс для создания моделей данных. Предоставляет базовую функциональность для работы с данными в базе данных.
Example