umbot - v2.0.8
    Preparing search index...

    Class DbControllerMongoDb

    Контроллер для работы с данными в MongoDB Реализует базовые операции CRUD для MongoDB с поддержкой валидации и безопасности

    // Создание контроллера
    const controller = new DbControllerMongoDb();
    controller.tableName = 'users';

    // Добавление записи
    const queryData = new QueryData();
    queryData.setData({ id: 1, name: 'John' });
    await controller.insert(queryData);

    // Поиск записей
    const result = await controller.select({ name: 'John' });

    DbControllerMongoDb

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    _tableName: string

    Имя таблицы в базе данных Используется для выполнения запросов

    _rules: IModelRules[]

    Правила валидации для полей таблицы Определяют типы и ограничения для каждого поля

    _connectConfig: undefined | IAppDB

    Конфигурация подключения к базе данных Содержит параметры для установки соединения

    _primaryKeyName: TKey

    Имя первичного ключа таблицы По умолчанию 'id'

    id
    

    Accessors

    • get tableName(): string

      Возвращает имя таблицы

      Returns string

      Имя таблицы

      const table = controller.tableName;
      
    • set tableName(tableName: string): void

      Устанавливает имя таблицы

      Parameters

      • tableName: string

        Имя таблицы

      Returns void

      controller.tableName = 'users';
      
    • get primaryKeyName(): TKey

      Возвращает имя первичного ключа

      Returns TKey

      Имя первичного ключа

      const keyName = controller.primaryKeyName;
      
    • set primaryKeyName(primaryKey: TKey): void

      Устанавливает имя первичного ключа

      Parameters

      • primaryKey: TKey

        Имя первичного ключа

      Returns void

      controller.primaryKeyName = '_id';
      

    Methods

    • Сохраняет запись в источник данных Если запись существует - обновляет, иначе создает новую

      Parameters

      • saveData: QueryData

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

      • isNew: boolean

        Флаг создания новой записи

      Returns Promise<any>

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

      const queryData = new QueryData();
      queryData.setData({ username: 'John' });
      queryData.setQuery({ id: 1 });
      await controller.save(queryData);
    • Выполняет поиск одной записи в источнике данных

      Parameters

      • query: null | IQueryData

        Условия поиска

      Returns Promise<null | IModelRes>

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

      const result = await controller.selectOne({ id: 1 });
      if (result?.status) {
      console.log('Record found');
      }
    • Обновляет существующую запись в MongoDB

      Parameters

      • updateQuery: QueryData

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

      Returns Promise<any>

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

      const queryData = new QueryData();
      queryData.setQuery({ id: 1 });
      queryData.setData({ name: 'John' });
      await controller.update(queryData);
    • Добавляет новую запись в MongoDB

      Parameters

      • insertQuery: QueryData

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

      Returns Promise<any>

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

      const queryData = new QueryData();
      queryData.setData({ id: 1, name: 'John' });
      await controller.insert(queryData);
    • Удаляет запись из MongoDB

      Parameters

      • removeQuery: QueryData

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

      Returns Promise<boolean>

      Promise - true если удаление успешно

      const queryData = new QueryData();
      queryData.setQuery({ id: 1 });
      await controller.remove(queryData);
    • Выполняет произвольный запрос к MongoDB

      Parameters

      • callback: TQueryCb

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

      Returns any

      Результат выполнения запроса или null если нет подключения

      const result = await controller.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

      • element: null | IQueryData

        Данные для валидации

      Returns IQueryData

      Валидированные данные

      const validated = controller.validate({
      id: 1,
      name: 'John',
      age: '25'
      });
      // Результат: { id: 1, name: 'John', age: 25 }
    • Выполняет поиск записей в MongoDB

      Parameters

      • where: null | IQueryData

        Условия поиска

      • isOne: boolean = false

        Флаг выборки одной записи

      Returns Promise<IModelRes>

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

      // Поиск одной записи
      const one = await controller.select({ id: 1 }, true);

      // Поиск нескольких записей
      const many = await controller.select({ age: { $gt: 18 } });
    • Экранирует специальные символы в строке Делает строку безопасной для использования в запросах

      Parameters

      • text: string | number

        Текст для экранирования

      Returns string

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

      const safe = controller.escapeString("O'Connor");
      
    • Проверяет состояние подключения к MongoDB

      Returns Promise<boolean>

      Promise - true если подключение активно

      const isConnected = await controller.isConnected();
      if (isConnected) {
      // Выполнение операций с базой данных
      }