AbstractТип состояния модели Model
ProtectedconstructorСоздает новый экземпляр модели. Инициализирует контекст приложения и параметры запроса (queryData)
Тип состояния модели Model
Контекст приложения (адаптер БД, логгер, метрики)
Protected_appContextКонтекст приложения.
Объект для хранения параметров запроса. Содержит условия поиска и данные для обновления
Начальный индекс для итерации по данным. Используется при инициализации модели из массива
Состояние модели. Содержит текущие значения всех атрибутов
AbstractattributeLabelsОпределяет метки атрибутов модели Должен быть реализован в дочерних классах
Объект с метками атрибутов
ProtectedgetIdОпределяет имя первичного ключа таблицы. Ищет поле с меткой 'id' или 'ID'
Имя первичного ключа или null
Выполняет произвольный запрос к базе данных
Типы 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
Абстрактный класс для создания моделей данных Предоставляет базовую функциональность для работы с данными в базе данных
Example