Эта документация была автоматически переведена ИИ.
Для заданного объекта 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 desc, name asc.
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 destroy(options?: TargetKey | TargetKey[] | DestroyOptions): Promise<number>Тип
Подробности
filter: Указывает условия фильтрации для удаляемых записей. Подробное использование Filter см. в методе find().filterByTk: Указывает условия фильтрации для удаляемых записей по TargetKey.truncate: Следует ли очищать данные коллекции, действует, если параметры filter или filterByTk не переданы.transaction: Объект транзакции. Если параметр транзакции не передан, метод автоматически создаст внутреннюю транзакцию.