Ця документація була автоматично перекладена штучним інтелектом.
Для заданого об'єкта Collection ви можете отримати його об'єкт Repository для виконання операцій читання та запису даних у таблиці.
На об'єкті Repository ви можете викликати методи find* для виконання операцій запиту. Усі методи запиту підтримують передачу параметра filter для фільтрації даних.
Параметр filter у Repository також надає різноманітні оператори для виконання більш гнучких операцій запиту.
Детальніше про оператори дивіться у розділі Оператори фільтрації.
Під час виконання операції запиту ви можете керувати полями, що виводяться, за допомогою параметрів fields, except та appends.
fields: Вказує поля для виведенняexcept: Виключає поля з виведенняappends: Додає пов'язані поля до результатуПараметр filter підтримує фільтрацію за полями асоціацій, наприклад:
Поля асоціацій також можуть бути вкладеними.
За допомогою параметра sort ви можете сортувати результати запиту.
Ви також можете сортувати за полями об'єктів асоціацій.
Створюйте нові об'єкти даних за допомогою Repository.
Під час створення ви також можете одночасно створювати об'єкти асоціацій. Подібно до запитів, підтримується також вкладене використання об'єктів асоціацій, наприклад:
Якщо об'єкт асоціації вже існує в базі даних, ви можете передати його ID для встановлення асоціації з ним під час створення.
Отримавши об'єкт даних, ви можете безпосередньо змінювати його властивості на об'єкті даних (Model), а потім викликати метод save для збереження змін.
Об'єкт даних Model успадковує функціонал від Sequelize Model. Щоб дізнатися про операції з Model, зверніться до Sequelize Model.
Ви також можете оновлювати дані за допомогою Repository:
Під час оновлення ви можете контролювати поля, що оновлюються, за допомогою параметрів whitelist та blacklist, наприклад:
Під час оновлення ви можете встановлювати об'єкти асоціацій, наприклад:
Ви можете викликати метод destroy() у Repository для виконання операції видалення. Під час видалення необхідно вказати критерії фільтрації:
Зазвичай не викликається безпосередньо розробниками. В основному він створюється екземпляром після реєстрації типу за допомогою db.registerRepositories() та вказівки відповідного зареєстрованого типу репозиторію в параметрах db.collection().
Підпис
constructor(collection: Collection)Приклад
databaseЕкземпляр для керування базою даних контексту.
collectionВідповідний екземпляр для керування колекцією.
modelВідповідний клас моделі.
find()Запитує набір даних з бази даних, дозволяючи вказувати умови фільтрації, сортування тощо.
Підпис
async find(options?: FindOptions): Promise<Model[]>Тип
Деталі
filter: FilterУмова фільтрації, що використовується для фільтрації результатів даних. У переданих параметрах запиту key — це ім'я поля для запиту, а value може бути значенням для запиту або використовуватися разом з операторами для фільтрації даних за іншими умовами.
Детальніше про оператори дивіться у розділі Оператори запиту.
filterByTk: TargetKeyЗапитує дані за TargetKey, що є зручним методом для параметра filter. Конкретне поле для TargetKey можна налаштувати у Collection, за замовчуванням це primaryKey.
fields: string[]Поля для запиту, що використовуються для керування полями даних у результатах. Після передачі цього параметра будуть повернуті лише вказані поля.
except: string[]Поля для виключення, що використовуються для керування полями даних у результатах. Після передачі цього параметра передані поля не будуть включені у вивід.
appends: string[]Поля для додавання, що використовуються для завантаження даних асоціацій. Після передачі цього параметра вказані поля асоціацій також будуть включені у вивід.
sort: string[] | stringВизначає спосіб сортування для результатів запиту. Параметром є ім'я поля, яке за замовчуванням сортується за зростанням (asc). Для сортування за спаданням (desc) додайте символ - перед назвою поля, наприклад, ['-id', 'name'], що означає сортування за id за спаданням, а потім за name за зростанням.
limit: numberОбмежує кількість результатів, так само як limit у SQL.
offset: numberЗміщення запиту, так само як offset у SQL.
Приклад
findOne()Запитує один запис даних з бази даних, який відповідає певним критеріям. Еквівалентно Model.findOne() у Sequelize.
Підпис
async findOne(options?: FindOneOptions): Promise<Model | null>Приклад
count()Запитує загальну кількість записів даних, що відповідають певним критеріям, з бази даних. Еквівалентно Model.count() у Sequelize.
Підпис
count(options?: CountOptions): Promise<number>Тип
Приклад
findAndCount()Запитує набір даних та їх загальну кількість, що відповідають певним критеріям, з бази даних. Еквівалентно Model.findAndCountAll() у Sequelize.
Підпис
async findAndCount(options?: FindAndCountOptions): Promise<[Model[], number]>Тип
Деталі
Параметри запиту такі ж, як у find(). Повертається масив, де перший елемент — це результат запиту, а другий — загальна кількість.
create()Вставляє новий запис у таблицю даних. Еквівалентно Model.create() у Sequelize. Коли об'єкт даних, що створюється, містить інформацію про поля асоціацій, відповідні записи даних асоціацій також будуть створені або оновлені.
Підпис
async create<M extends Model>(options: CreateOptions): Promise<M>Приклад
createMany()Вставляє кілька нових записів у таблицю даних. Еквівалентно багаторазовому виклику методу create().
Підпис
createMany(options: CreateManyOptions): Promise<Model[]>Тип
Деталі
records: Масив об'єктів даних для записів, що створюються.transaction: Об'єкт транзакції. Якщо параметр транзакції не передано, метод автоматично створить внутрішню транзакцію.Приклад
update()Оновлює дані в таблиці даних. Еквівалентно Model.update() у Sequelize. Коли об'єкт даних, що оновлюється, містить інформацію про поля асоціацій, відповідні записи даних асоціацій також будуть створені або оновлені.
Підпис
async update<M extends Model>(options: UpdateOptions): Promise<M>Приклад
destroy()Видаляє дані з таблиці даних. Еквівалентно Model.destroy() у Sequelize.
Підпис
async destory(options?: TargetKey | TargetKey[] | DestoryOptions): Promise<number>Тип
Деталі
filter: Вказує умови фільтрації для записів, що видаляються. Детальне використання Filter дивіться у методі find().filterByTk: Вказує умови фільтрації для записів, що видаляються, за TargetKey.truncate: Чи очищати дані таблиці, діє, якщо не передано параметри filter або filterByTk.transaction: Об'єкт транзакції. Якщо параметр транзакції не передано, метод автоматично створить внутрішню транзакцію.