umbot - v2.0.8
    Preparing search index...

    Interface IDbControllerModel

    Интерфейс контроллера базы данных Определяет методы для работы с MongoDB и управления данными

    class UserController implements IDbControllerModel {
    tableName = 'users';
    primaryKeyName = 'user_id';

    async selectOne(query: IQueryData) {
    // Реализация выборки пользователя
    }

    async save(data: QueryData, isNew: boolean) {
    // Реализация сохранения пользователя
    }
    }
    interface IDbControllerModel {
        tableName: string;
        primaryKeyName: TKey;
        setRules(rules: IModelRules[]): void;
        getValue(res: IModelRes): null | IDbControllerResult<unknown>;
        select(select: null | IQueryData, isOne: boolean): Promise<IModelRes>;
        insert(insertData: QueryData): any;
        update(updateData: QueryData): any;
        save(saveData: QueryData, isNew: boolean): Promise<any>;
        remove(removeData: QueryData): any;
        query(callback: TQueryCb): any;
        selectOne(query: null | IQueryData): Promise<null | IModelRes>;
        escapeString(str: string | number): string;
        isConnected(): Promise<boolean>;
        destroy(): void;
    }

    Implemented by

    Index

    Properties

    tableName: string

    Имя коллекции в базе данных

    tableName = 'users';
    tableName = 'products';
    primaryKeyName: TKey

    Имя поля, используемого как первичный ключ

    primaryKeyName = '_id';
    primaryKeyName = 'user_id';

    Methods

    • Устанавливает правила валидации для модели

      Parameters

      • rules: IModelRules[]

        Массив правил валидации

      Returns void

      setRules([
      { name: ['username'], type: 'string', max: 50 },
      { name: ['age'], type: 'integer' }
      ]);
    • Извлекает значение из результата запроса к базе данных

      Parameters

      • res: IModelRes

        Результат запроса к базе данных

      Returns null | IDbControllerResult<unknown>

      Извлеченное значение или null

      const result = getValue({ status: true, data: { id: 1, name: 'John' } });
      // result = { id: 1, name: 'John' }
    • Выполняет запрос на выборку данных из базы

      Parameters

      • select: null | IQueryData

        Параметры запроса

      • isOne: boolean

        Флаг выборки одного элемента

      Returns Promise<IModelRes>

      Promise с результатом запроса

      const result = await select(
      { where: { age: { $gt: 18 } } },
      false
      );
    • Вставляет новые данные в базу

      Parameters

      • insertData: QueryData

        Данные для вставки

      Returns any

      Результат операции вставки

      const result = await insert({
      data: { name: 'John', age: 25 }
      });
    • Обновляет существующие данные в базе

      Parameters

      • updateData: QueryData

        Данные для обновления

      Returns any

      Результат операции обновления

      const result = await update({
      where: { id: 1 },
      data: { age: 26 }
      });
    • Сохраняет данные в базу (вставка или обновление)

      Parameters

      • saveData: QueryData

        Данные для сохранения

      • isNew: boolean

        Флаг нового элемента

      Returns Promise<any>

      Promise с результатом операции

      const result = await save(
      { data: { id: 1, name: 'John' } },
      true // новый элемент
      );
    • Удаляет данные из базы

      Parameters

      • removeData: QueryData

        Данные для удаления

      Returns any

      Результат операции удаления

      const result = await remove({
      where: { id: 1 }
      });
    • Выполняет произвольный запрос к базе данных

      Parameters

      • callback: TQueryCb

        Функция обратного вызова для выполнения запроса

      Returns any

      Результат выполнения запроса

      const result = await query(async (client, db) => {
      const collection = db.collection('users');
      return await collection.aggregate([
      { $match: { age: { $gt: 18 } } },
      { $group: { _id: '$city', count: { $sum: 1 } } }
      ]).toArray();
      });
    • Экранирует специальные символы в строке

      Parameters

      • str: string | number

        Строка для экранирования

      Returns string

      Экранированная строка

      const safe = escapeString("O'Connor"); // O\'Connor
      
    • Проверяет состояние подключения к базе данных

      Returns Promise<boolean>

      Promise с результатом проверки

      const connected = await isConnected();
      if (connected) {
      // выполнить операции с базой
      }