Spec-Zone.ru › Sequelize 5

Модель

Модель представляет собой таблицу в базе данных. Экземпляры этого класса представляют собой строку базы данных.

Экземпляры модели работают с концепцией свойства dataValues , которое хранит фактические значения, представленные экземпляром. По умолчанию, значения из dataValues также можно получить напрямую из экземпляра, то есть:

instance.field
// is the same as
instance.get('field')
// is the same as
instance.getDataValue('field')

Однако, если для field определены геттеры и/или сеттеры, они будут вызваны вместо возвращения значения из dataValues. Доступ к свойствам напрямую или использование get предпочтительнее для обычного использования, getDataValue следует использовать только для пользовательских геттеров.

См.:

  • Sequelize#define для получения дополнительной информации о геттерах и сеттерах

Статический свод методов

Статические публичные методы
public static

addScope(name: string, scope: Object | Function, options: Object)

Добавить новый область видимости в модель.

public static

aggregate(attribute: string, aggregateFunction: string, options: Object): Promise<DataTypes|Object>

Выполнить метод агрегирования для указанного поля.

public static

belongsTo(target: Model, options: Object): BelongsTo

Создаёт связь между текущей (источником) и целевой моделью.

public static

belongsToMany(target: Model, options: Object): BelongsToMany

Создать связь многие-ко-многим с таблицей связи.

public static

build(values: Object | Array, options: Object): Model | Array<Model>

Создать новый экземпляр модели.

public static

bulkCreate(records: Array, options: Object): Promise<Array<Model>>

Массовое создание и вставка нескольких экземпляров.

public static

count(options: Object): Promise<number>

Подсчёт записей, соответствующих заданному фильтру.

public static

create(values: Object, options: Object): Promise<Model>

Создаёт новый экземпляр модели и вызывает save на нём.

public static

decrement(fields: string | Array | Object, options: Object): Promise<Model[], ?number>

Уменьшение значения одного или нескольких столбцов.

с 4.36.0
public static

describe(schema: string, options: Object): Promise

Запуск запроса describe для таблицы.

public static

destroy(options: Object): Promise<number>

Удаление нескольких экземпляров или установка для них timestamp deletedAt, если paranoid включен.

public static

drop(options: Object): Promise

Удаление таблицы, представленной этой моделью.

public static

findAll(options: Object): Promise<Array<Model>>

Поиск нескольких экземпляров.

public static

findAndCountAll(options: Object): Promise<{count: number, rows: Model[]}>

Поиск всех строк, соответствующих запросу, в указанном смещении/пределе, и получение общего количества строк, соответствующих вашему запросу.

public static

findByPk(param: number | string | Buffer, options: Object): Promise<Model>

Поиск одного экземпляра по его первичному ключу.

public static

findCreateFind(options: Object): Promise<Model, boolean>

Более производительный findOrCreate, который не будет работать в рамках транзакции (по крайней мере, не в postgres). Выполнит вызов find, если пусто, попытается создать, если уникальное ограничение, то попытается найти снова

public static

findOne(options: Object): Promise<Model>

Поиск одного экземпляра.

public static

findOrBuild(options: Object): Promise<Model, boolean>

Найти строку, соответствующую запросу, или создать (но не сохранять) строку, если не найдено. Успешный результат обещания будет (экземпляр, созданный).

public static

findOrCreate(options: Object): Promise<Model, boolean>

Найти строку, соответствующую запросу, или создать и сохранить строку, если не найдено. Успешный результат обещания будет (экземпляр, созданный).

public static

getTableName(): string | Object

Получить имя таблицы модели, учитывая схему.

public static

hasMany(target: Model, options: Object): HasMany

Создаёт ассоциацию 1:м между этой (источником) и предоставленным целевым элементом.

public static

hasOne(target: Model, options: Object): HasOne

Создаёт ассоциацию между этой (источником) и предоставленным целевым элементом.

public static

increment(fields: string | Array | Object, options: Object): Promise<Model[], ?number>

Увеличить значение одного или нескольких столбцов.

public static

init(attributes: Object, options: Object): Model

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

public static

max(field: string, options: Object): Promise<*>

Найти максимальное значение поля

public static

min(field: string, options: Object): Promise<*>

Найти минимальное значение поля

public static

removeAttribute(attribute: string)

Удалить атрибут из определения модели

public static

restore(options: Object): Promise

Восстановить несколько экземпляров, если paranoid включено.

public static

schema(schema: string, options: Object): Model

Применить схему к этой модели.

public static

scope(option: Array | Object | string): Model

Применить область, созданную в define, к модели.

public static

sum(field: string, options: Object): Promise<number>

Найти сумму поля

public static

sync(options: Object): Promise<Model>

Синхронизировать эту модель с БД, то есть создать таблицу.

public static

truncate(options: Object): Promise

Обнулить все экземпляры модели.

public static

unscoped(): Model

Получить не-объявленную модель

public static

update(values: Object, options: Object): Promise<Array<number, number>>

Обновить несколько экземпляров, соответствующих параметрам where.

public static

upsert(values: Object, options: Object): Promise<boolean>

Вставить или обновить одну строку.

Краткое описание конструкторов

Общедоступный конструктор
public

constructor(values: Object, options: Object)

Создает новый экземпляр модели.

Краткое описание членов

Общедоступные члены
public

isNewRecord: boolean: *

Возвращает true, если этот экземпляр еще не был сохранен в базе данных

public get

sequelize: Sequelize: *

Ссылка на экземпляр sequelize

Краткое описание методов

Общедоступные методы
public

changed(key: string, value: any): boolean | Array

Если метод changed вызывается со строкой, он вернёт булево значение, указывающее, отличается ли значение данного ключа в dataValues от значения в _previousDataValues.

public

decrement(fields: string | Array | Object, options: Object): Promise

Уменьшить значение одного или нескольких столбцов.

public

destroy(options: Object): Promise

Удалить строку, соответствующую данному экземпляру.

public

equals(other: Model): boolean

Проверить, ссылаются ли этот и other экземпляры на одну и ту же строку.

public

equalsOneOf(others: Array<Model>): boolean

Проверить, равен ли этот экземпляр одному из others, вызвав equals.

public

get(key: string, options: Object): Object | any

Если ключ не указан, возвращает все значения экземпляра, также вызывая виртуальные геттеры.

public

getDataValue(key: string): any

Получить значение базового значения данных.

public

increment(fields: string | Array | Object, options: Object): Promise<Model>

Увеличить значение одного или нескольких столбцов.

с версии 4.0.0
public

isSoftDeleted(): boolean

Вспомогательный метод для определения, является ли экземпляр «мягко удаленным».

public

previous(key: string): any | Array<any>

Возвращает предыдущее значение для ключа из _previousDataValues.

public

reload(options: Object): Promise<Model>

Обновить текущий экземпляр на месте, т.е.

public

restore(options: Object): Promise

Восстановить строку, соответствующую данному экземпляру.

public

save(options: Object): Promise<Model>

Проверить этот экземпляр, и если проверка пройдёт, сохранить его в базе данных.

public

set(key: string | Object, value: any, options: Object): Model

Метод set используется для обновления значений в экземпляре (представление экземпляра в sequelize, помните, что ничего не будет сохранено до тех пор, пока вы не вызовете save).

public

setDataValue(key: string, value: any)

Обновить базовое значение данных.

public

toJSON(): Объект

Преобразовать экземпляр в представление JSON.

public

update(values: Объект, options: Объект): Promise<Модель>

Это то же самое, что вызов set и затем вызов save, но он сохраняет только точные значения, переданные ему, что делает его более атомным и безопасным.

public

validate(options: Объект): Promise

Проверка атрибутов этого экземпляра в соответствии с правилами валидации, заданными в определении модели.

public

where(checkVersion: boolean): Объект

Получить объект, представляющий запрос для этого экземпляра, использовать с options.where

Статические открытые методы

public static addScope(name: string, scope: Object | Function, options: Object) source

Добавить новый scope к модели. Это особенно полезно для добавления scopes с includes, когда модель, которую вы хотите включить, недоступна в момент определения этой модели.

По умолчанию это вызовет ошибку, если scope с таким именем уже существует. Передайте override: true в объект options, чтобы подавить эту ошибку.

Параметры:

Имя Тип Атрибут Описание
name string

Имя scope. Используйте defaultScope для переопределения scope по умолчанию

scope Object | Function

scope или options

options Object
  • optional

options scope

options.override boolean
  • optional
  • default: false

переопределить старый scope, если он уже определен

public static aggregate(attribute: string, aggregateFunction: string, options: Object): Promise<DataTypes|Object> source

Выполнить метод агрегации для указанного поля

Параметры:

Имя Тип Атрибут Описание
attribute string

Атрибут, по которому выполняется агрегация. Может быть именем поля или *

aggregateFunction string

Функция, используемая для агрегации, например, sum, max и т.д.

options Object
  • optional

Параметры запроса. См. sequelize.query для полного списка параметров

options.where Object
  • optional

Хэш атрибутов поиска.

options.logging Function
  • optional
  • default: false

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

options.benchmark boolean
  • optional
  • default: false

Передать время выполнения запроса в миллисекундах в качестве второго аргумента в функцию логирования (options.logging).

options.dataType DataTypes | string
  • optional

Тип результата. Если field является полем в этой модели, по умолчанию будет тип этого поля, в противном случае по умолчанию float.

options.distinct boolean
  • optional

Применяет DISTINCT к полю, по которому выполняется агрегация

options.transaction Transaction
  • optional

Транзакция для выполнения запроса

options.plain boolean
  • optional

Когда true, первое возвращаемое значение aggregateFunction приводится к dataType и возвращается. Если указаны дополнительные атрибуты, а также предложения group, установите plain в false, чтобы вернуть все значения всех возвращаемых строк. По умолчанию true

Возвращает:

Promise<DataTypes|Object>

Возвращает агрегированный результат, приведенный к типу options.dataType, если options.plain не равно false, в противном случае возвращается полный результат данных.

public static belongsTo(target: Model, options: Object): BelongsTo source

Создаёт ассоциацию между этим (источником) и предоставленным целевым объектом. Внешний ключ добавляется к источнику.

Параметры:

Имя Тип Атрибут Описание
target Model

Целевой объект модели

options Объект
  • необязательно

Параметры ассоциации belongsTo

options.hooks boolean
  • необязательно
  • значение по умолчанию: false

Установите в true, чтобы выполнять перед-/послеудаления хуки при удалении связанной модели из-за каскадного удаления. Например, если User.hasOne(Profile, {onDelete: 'cascade', hooks:true}), перед-/послеудаления хуки для профиля будут вызваны при удалении пользователя. В противном случае профиль будет удалён без вызова каких-либо хуков

options.as строка
  • необязательно

Псевдоним этой модели в единственном числе. См. также параметр name, переданный в sequelize.define. Если вы создаёте несколько ассоциаций между одними и теми же таблицами, вам следует предоставить псевдоним, чтобы можно было отличить их друг от друга. Если вы предоставляете псевдоним при создании ассоциации, вы должны предоставить тот же псевдоним при жадном загрузке и при получении связанных моделей. По умолчанию используется единственное число от имени target.

options.foreignKey строка | Объект
  • необязательно

Имя атрибута внешнего ключа в источниковой таблице или объект, представляющий определение типа для внешнего столбца (см. Sequelize.define для синтаксиса). При использовании объекта вы можете добавить свойство name для задания имени столбца. По умолчанию используется имя target + первичный ключ target.

options.targetKey строка
  • необязательно

Имя атрибута для использования в качестве ключа для ассоциации в целевой таблице. По умолчанию используется первичный ключ целевой таблицы.

options.onDelete строка
  • необязательно
  • значение по умолчанию: 'SET NULL|NO ACTION'

SET NULL, если внешний ключ допускает значения NULL, NO ACTION в противном случае

options.onUpdate строка
  • необязательно
  • значение по умолчанию: 'CASCADE'

Устанавливает 'ON UPDATE'

options.constraints boolean
  • необязательно
  • значение по умолчанию: true

Включить или отключить ограничения на обновление и удаление по внешнему ключу.

Возвращаемое значение:

BelongsTo

Пример:

Profile.belongsTo(User) // This will add userId to the profile table

public static belongsToMany(target: Model, options: Object): BelongsToMany source

Создать ассоциацию N:M с таблицей соединения. Определение through обязательно.

Параметры:

Имя Тип Атрибут Описание
target Model

Модель-цель

options Object

Параметры ассоциации belongsToMany

options.hooks boolean
  • необязательно
  • по умолчанию: false

Установите в значение true, чтобы запускать перед-/послеудаления хуки при удалении связанной модели из-за каскадного удаления. Например, если User.hasOne(Profile, {onDelete: 'cascade', hooks:true}), перед-/послеудаления хуки для профиля будут вызваны при удалении пользователя. В противном случае профиль будет удален без вызова каких-либо хуков

options.through Model | string | Object

Имя таблицы, используемой для объединения исходной и целевой моделей в ассоциациях n:m. Также может быть моделью sequelize, если вы хотите определить таблицу соединения самостоятельно и добавить дополнительные атрибуты.

options.through.model Model
  • необязательно

Модель, используемая для объединения обеих сторон ассоциации N:M.

options.through.scope Object
  • необязательно

Набор ключ/значение, который будет использоваться для создания и поиска ассоциаций по умолчанию в модели соединения. (Не забудьте добавить атрибуты в модель соединения)

options.through.unique boolean
  • необязательно
  • по умолчанию: true

Если true, уникальный ключ будет сгенерирован из внешних ключей (возможно, следует отключить и создать собственные уникальные ключи при использовании областей видимости)

options.as string | Object
  • необязательно

Псевдоним этой ассоциации. Если вы предоставляете строку, она должна быть множественной, и будет приведена к единственному числу с помощью node.inflection. Если вы хотите самостоятельно контролировать единственное число, укажите объект с ключами plural и singular. См. также параметр name, переданный sequelize.define. Если вы создаете несколько ассоциаций между одними и теми же таблицами, вам следует предоставить псевдоним, чтобы иметь возможность различать их. Если вы предоставите псевдоним при создании ассоциации, вы должны предоставить тот же псевдоним при ленивой загрузке и получении связанных моделей. По умолчанию устанавливается множественное число имени target

options.foreignKey string | Object
  • необязательно

Имя внешнего ключа в таблице соединения (представляющей исходную модель) или объект, представляющий определение типа для внешнего столбца (см. Sequelize.define для синтаксиса). При использовании объекта вы можете добавить свойство name для задания имени столбца. По умолчанию устанавливается имя источника + первичный ключ источника

options.otherKey string | Object
  • необязательно

Имя внешнего ключа в таблице соединения (представляющей целевую модель) или объект, представляющий определение типа для другого столбца (см. Sequelize.define для синтаксиса). При использовании объекта вы можете добавить свойство name для задания имени столбца. По умолчанию устанавливается имя целевой модели + первичный ключ целевой модели

options.scope Object
  • необязательно

Набор ключ/значение, который будет использоваться для создания и поиска ассоциаций по умолчанию для целевой модели. (sqlite не поддерживается для N:M)

options.timestamps boolean
  • необязательно
  • по умолчанию: sequelize.options.timestamps

Должна ли модель соединения иметь метки времени

options.onDelete string
  • необязательно
  • по умолчанию: 'SET NULL|CASCADE'

Каскадное удаление, если это n:m, и установка NULL, если это 1:m

options.onUpdate string
  • необязательно
  • по умолчанию: 'CASCADE'

Устанавливает ON UPDATE

options.constraints boolean
  • необязательно
  • по умолчанию: true

Включить ограничения при обновлении и удалении по внешнему ключу.

Возвращает:

BelongsToMany

Пример:

// Automagically generated join model
User.belongsToMany(Project, { through: 'UserProjects' })
Project.belongsToMany(User, { through: 'UserProjects' })

// Join model with additional attributes
const UserProjects = sequelize.define('UserProjects', {
  started: Sequelize.BOOLEAN
})
User.belongsToMany(Project, { through: UserProjects })
Project.belongsToMany(User, { through: UserProjects })

public static build(values: Object | Array, options: Object): Model | Array<Model> source

Создаёт новую модель.

Параметры:

Имя Тип Атрибут Описание
values Object | Array

Объект пар «ключ-значение» или массив таких пар. Если массив, функция вернёт массив экземпляров.

options Object
  • необязательно

Параметры создания экземпляра

options.raw boolean
  • необязательно
  • по умолчанию: false

Если true, значения игнорируют поля и виртуальные сеттеры.

options.isNewRecord boolean
  • необязательно
  • по умолчанию: true

Является ли запись новой

options.include Array
  • необязательно

массив опций включения - используется для построения предварительно полученных/включенных экземпляров модели. Смотрите set

Возвращаемое значение:

Model | Array<Model>

public static bulkCreate(records: Array, options: Object): Promise<Array<Model>> source

Создать и вставить несколько экземпляров в пакетном режиме.

Обработчик успеха получает массив экземпляров, но обратите внимание, что они могут не полностью отражать состояние строк в базе данных. Это связано с тем, что MySQL и SQLite не позволяют легко получить автоматически сгенерированные идентификаторы и другие значения по умолчанию таким образом, который может быть сопоставлен с несколькими записями. Чтобы получить экземпляры для только что созданных значений, вам необходимо снова выполнить запрос для них.

Если проверка не пройдена, обещание отклоняется с массивоподобной ошибкой AggregateError

Параметры:

Имя Тип Атрибут Описание
records Array

Список объектов (пар ключ/значение) для создания экземпляров

options Object
  • необязательно

Параметры пакетного создания

options.fields Array
  • необязательно

Поля для вставки (по умолчанию все поля)

options.validate boolean
  • необязательно
  • по умолчанию: false

Каждый ряд должен быть проверен на соответствие перед вставкой. Вся вставка завершится ошибкой, если одна строка не пройдет проверку

options.hooks boolean
  • необязательно
  • по умолчанию: true

Выполнять хуки перед/после пакетного создания?

options.individualHooks boolean
  • необязательно
  • по умолчанию: false

Выполнять хуки перед/после создания для каждого отдельного экземпляра? Хуки bulkCreate всё равно будут выполнены, если options.hooks равно true.

options.ignoreDuplicates boolean
  • необязательно
  • по умолчанию: false

Игнорировать дублирующие значения для первичных ключей? (не поддерживается MSSQL или Postgres < 9.5)

options.updateOnDuplicate Array
  • необязательно

Поля для обновления, если строка ключа уже существует (при обновлении дублирующего ключа)? (поддерживается только MySQL, MariaDB, SQLite >= 3.24.0 и Postgres >= 9.5). По умолчанию все поля обновляются.

options.transaction Transaction
  • необязательно

Транзакция для выполнения запроса

options.logging Function
  • необязательно
  • по умолчанию: false

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

options.benchmark boolean
  • необязательно
  • по умолчанию: false

Передать время выполнения запроса в миллисекундах во втором аргументе функции регистрации (options.logging).

options.returning boolean | Array
  • необязательно
  • по умолчанию: false

Если true, добавьте RETURNING * для получения всех значений; если массив имен столбцов, добавьте RETURNING <столбцы> для получения определенных столбцов (только Postgres)

options.searchPath string
  • необязательно
  • по умолчанию: DEFAULT

Необязательный параметр для указания пути поиска схемы (только Postgres)

Возвращает:

Promise<Array<Model>>

public static count(options: Object): Promise<number> source

Подсчитать количество записей, соответствующих заданному условию where.

Если вы предоставите опцию include, будет подсчитано количество соответствующих ассоциаций.

Параметры:

Имя Тип Атрибут Описание
options Объект
  • необязательно

Параметры

options.where Объект
  • необязательно

Хэш атрибутов поиска.

options.include Объект
  • необязательно

Параметры включения. Подробнее см. find

options.paranoid boolean
  • необязательно
  • значение по умолчанию: true

Установить true, чтобы подсчитать только не удалённые записи. Может быть использовано для моделей с включённым paranoid

options.distinct boolean
  • необязательно

Применить COUNT(DISTINCT(col)) к первичному ключу или к options.col.

options.col строка
  • необязательно

Столбец, к которому нужно применить COUNT()

options.attributes Массив
  • необязательно

Используется совместно с group

options.group Массив
  • необязательно

Для создания сложных подсчётов. Возвращает несколько строк по мере необходимости.

options.transaction Транзакция
  • необязательно

Транзакция для выполнения запроса.

options.logging Функция
  • необязательно
  • значение по умолчанию: false

Функция, выполняемая при выполнении запроса для записи SQL.

options.benchmark boolean
  • необязательно
  • значение по умолчанию: false

Передать время выполнения запроса в миллисекундах как второй аргумент функции logging (options.logging).

options.searchPath строка
  • необязательно
  • значение по умолчанию: DEFAULT

Необязательный параметр для указания схемы search_path (только Postgres).

Возвращаемое значение:

Promise<число>

public static create(values: Object, options: Object): Promise<Model> source

Создаёт новую запись модели и вызывает метод save для неё.

Параметры:

Имя Тип Атрибут Описание
values Object

Словарь данных для создания новой записи.

options Object
  • необязательно

Опции для создания и запроса.

options.raw boolean
  • необязательно
  • по умолчанию: false

Если установлено в true, значения будут игнорировать поля и виртуальные сеттеры.

options.isNewRecord boolean
  • необязательно
  • по умолчанию: true

Новая запись?

options.include Массив
  • необязательно

Массив опций включения - используется для построения предварительно полученных/включенных экземпляров модели. См. set

options.fields Массив
  • необязательно

Если установлено, будут сохранены только столбцы, соответствующие полям в этом массиве.

options.fields строка[]
  • необязательно

Необязательный массив строк, представляющих столбцы базы данных. Если fields задан, будут валидированы и сохранены только эти столбцы.

options.silent boolean
  • необязательно
  • по умолчанию: false

Если true, отметка времени updatedAt не будет обновлена.

options.validate boolean
  • необязательно
  • по умолчанию: true

Если false, валидация не будет выполнена.

options.hooks boolean
  • необязательно
  • по умолчанию: true

Выполнение хуков до и после создания/обновления + валидации.

options.logging Функция
  • необязательно
  • по умолчанию: false

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

options.benchmark boolean
  • необязательно
  • по умолчанию: false

Передача времени выполнения запроса в миллисекундах как второго аргумента функции logging (options.logging).

options.transaction Транзакция
  • необязательно

Транзакция для выполнения запроса.

options.searchPath строка
  • необязательно
  • по умолчанию: DEFAULT

Необязательный параметр для указания пути поиска схемы (только Postgres).

options.returning boolean
  • необязательно
  • по умолчанию: true

Возвратить затронутые строки (только для postgres).

Возвращаемое значение:

Promise<Model>

См. также:

  • Model.build
  • Model.save

public static decrement(fields: string | Array | Object, options: Object): Promise<Model[], ?number> с 4.36.0 источник

Уменьшает значение одного или нескольких столбцов. Это выполняется в базе данных, что означает, что оно не использует значения, хранящиеся в данный момент в экземпляре. Уменьшение выполняется с помощью запроса sql SET column = column - X WHERE foo = 'bar'. Чтобы получить правильное значение после уменьшения в экземпляре, необходимо выполнить перезагрузку.

Параметры:

Имя Тип Атрибут Описание
fields string | Array | Object

Если предоставлена строка, этот столбец увеличивается на значение by заданное в options. Если предоставлен массив, то же самое верно для каждого столбца. Если предоставлен объект, каждый столбец увеличивается на заданное значение.

options Object

Опции уменьшения, аналогичные опциям увеличения

Возвращаемое значение:

Promise<Model[], ?number>

Возвращает массив затронутых строк и количество затронутых строк с options.returning: true, когда это поддерживается диалектом

Пример:

уменьшение числа на 1
Model.decrement('number', { where: { foo: 'bar' });
уменьшение числа и счетчика на 2
Model.decrement(['number', 'count'], { by: 2, where: { foo: 'bar' } });
уменьшение ответа на 42, и уменьшение попыток на -1
// `by` is ignored, since each column has its own value
Model.decrement({ answer: 42, tries: -1}, { by: 2, where: { foo: 'bar' } });

См. также:

  • Model.increment
  • Model#reload

public static describe(schema: string, options: Object): Promise источник

Выполняет запрос describe для таблицы.

Параметры:

Имя Тип Атрибут Описание
schema string
  • необязательно

Имя схемы для поиска таблицы

options Object
  • необязательно

Опции запроса

Возвращаемое значение:

Promise

Хеш атрибутов и их типов

public static destroy(options: Object): Promise<number> source

Удалить несколько экземпляров или установить для них отметку удаления (deletedAt) на текущую дату и время, если paranoid включен.

Параметры:

Имя Тип Атрибут Описание
options Object

Параметры для удаления.

options.where Object
  • необязательно

Фильтровать удаление.

options.hooks boolean
  • необязательно
  • по умолчанию: true

Выполнять хуки перед/после массового удаления?

options.individualHooks boolean
  • необязательно
  • по умолчанию: false

Если установить в true, destroy будет выбирать все записи, соответствующие параметру where, и будет запускать хуки перед/после удаления для каждой строки.

options.limit number
  • необязательно

Количество строк для удаления.

options.force boolean
  • необязательно
  • по умолчанию: false

Удалить, вместо установки deletedAt на текущую метку времени (применимо только если paranoid включен).

options.truncate boolean
  • необязательно
  • по умолчанию: false

Если установлено в true, диалекты, которые это поддерживают, будут использовать TRUNCATE вместо DELETE FROM. Если таблица усекается, параметры where и limit игнорируются.

options.cascade boolean
  • необязательно
  • по умолчанию: false

Используется только в сочетании с TRUNCATE. Удаляет все таблицы, имеющие внешние ключи, ссылающиеся на указанную таблицу, или на любые таблицы, добавленные в группу из-за CASCADE.

options.restartIdentity boolean
  • необязательно
  • по умолчанию: false

Используется только в сочетании с TRUNCATE. Автоматически перезапускает последовательности, принадлежащие столбцам усеченной таблицы.

options.transaction Transaction
  • необязательно

Транзакция для выполнения запроса.

options.logging Function
  • необязательно
  • по умолчанию: false

Функция, которая выполняется при выполнении запроса для ведения журнала SQL.

options.benchmark boolean
  • необязательно
  • по умолчанию: false

Передать время выполнения запроса в миллисекундах как второй аргумент в функцию логирования (options.logging).

Возвращаемое значение:

Promise<number>

Количество строк, удаленных из таблицы.

public static drop(options: Object): Promise source

Удалить таблицу, представленную этим объектом модели.

Параметры:

Имя Тип Атрибут Описание
options Object
  • необязательно

Параметры для удаления.

options.cascade boolean
  • необязательно
  • по умолчанию: false

Также удалить все объекты, зависящие от этой таблицы, такие как представления. Действует только в postgres.

options.logging Function
  • необязательно
  • по умолчанию: false

Функция, которая выполняется при выполнении запроса для ведения журнала SQL.

options.benchmark boolean
  • необязательно
  • по умолчанию: false

Передать время выполнения запроса в миллисекундах как второй аргумент в функцию логирования (options.logging).

Возвращаемое значение:

Promise

public static findAll(options: Object): Promise<Array<Model>> source

Поиск нескольких экземпляров.

Параметры:

Имя Тип Атрибут Описание
options Объект
  • необязательный

Хэш опций для описания области поиска

options.where Объект
  • необязательный

Хэш атрибутов для описания поиска. Примеры см. выше.

options.attributes Массив<строка> | Объект
  • необязательный

Список атрибутов, которые нужно выбрать, или объект с ключами include и exclude. Чтобы переименовать атрибут, можно передать массив из двух элементов: первый — имя атрибута в базе данных (или какое-либо выражение, например, Sequelize.literal, Sequelize.fn и т. д.), а второй — желаемое имя атрибута в возвращаемом экземпляре.

options.attributes.include Массив<строка>
  • необязательный

Выберите все атрибуты модели, плюс некоторые дополнительные. Полезно для агрегаций, например, { attributes: { include: [[sequelize.fn('COUNT', sequelize.col('id')), 'total']] }.

options.attributes.exclude Массив<строка>
  • необязательный

Выберите все атрибуты модели, кроме нескольких. Полезно для целей безопасности, например, { attributes: { exclude: ['password'] } }.

options.paranoid логическое значение
  • необязательный
  • по умолчанию: true

Если true, возвращаются только не удалённые записи. Если false, возвращаются и удалённые, и не удалённые. Применимо только если options.paranoid равно true для модели.

options.include Массив<Объект|Модель|строка>
  • необязательный

Список ассоциаций для левого объединения. Поддерживаются { include: [ Model1, Model2, ...]}, { include: [{ model: Model1, as: 'Alias' }]} или { include: ['Alias']}. Если ваши ассоциации настроены с as, например, X.hasMany(Y, { as: 'Z }, при левом объединении необходимо указать Z в атрибуте as.

options.include[].model Модель
  • необязательный

Модель, которую нужно загрузить

options.include[].as строка
  • необязательный

Псевдоним отношения, в случае если модель, которую нужно загрузить, имеет псевдоним. Для hasOne / belongsTo это должно быть единственное имя, а для hasMany — множественное.

options.include[].association Ассоциация
  • необязательный

Ассоциация, которую нужно загрузить. (Это можно использовать вместо пары модель/as)

options.include[].where Объект
  • необязательный

Условия where для дочерних моделей. Обратите внимание, что это преобразует левое объединение во внутреннее, если явно не задано required: false.

options.include[].or логическое значение
  • необязательный
  • по умолчанию: false

Определяет, следует ли связывать условия ON и WHERE через OR вместо AND.

options.include[].on Объект
  • необязательный

Укажите собственное условие ON для объединения.

options.include[].attributes Массив<строка>
  • необязательный

Список атрибутов для выбора из дочерней модели.

options.include[].required логическое значение
  • необязательный

Если true, преобразуется во внутреннее объединение, что означает, что родительская модель будет загружена только в том случае, если у неё есть соответствующие дочерние элементы. True, если установлено include.where, в противном случае — false.

options.include[].right логическое значение
  • необязательный

Если true, преобразуется в правое объединение, если диалект его поддерживает. Игнорируется, если include.required равно true.

options.include[].separate логическое значение
  • необязательный

Если true, выполняется отдельный запрос для извлечения связанных экземпляров, поддерживается только для ассоциаций hasMany.

options.include[].limit число
  • необязательный

Ограничение объединённых строк, поддерживается только с include.separate=true

options.include[].through.where Объект
  • необязательный

Фильтр по модели объединения для отношений belongsToMany.

options.include[].through.attributes Массив
  • необязательный

Список атрибутов для выбора из модели объединения для отношений belongsToMany.

options.include[].include Массив<Объект|Модель|строка>
  • необязательный

Загрузка вложенных связанных моделей.

options.include[].duplicating boolean
  • optional

Отметить include как дублирующий, это предотвратит использование подзапроса.

options.order Массив | fn | col | literal
  • optional

Определяет порядок сортировки. Используя массив, вы можете указать несколько столбцов/функций для сортировки. Каждый элемент может быть дополнительно заключён в массив из двух элементов. Первый элемент — это столбец/функция для сортировки, второй — направление. Например: order: [['name', 'DESC']]. Таким образом, столбец будет экранирован, но направление нет.

options.limit число
  • optional

Предел результатов

options.offset число
  • optional

Смещение результатов

options.transaction Транзакция
  • optional

Транзакция для выполнения запроса

options.lock строка | Объект
  • optional

Заблокировать выбранные строки. Возможные варианты — transaction.LOCK.UPDATE и transaction.LOCK.SHARE. Postgres также поддерживает transaction.LOCK.KEY_SHARE, transaction.LOCK.NO_KEY_UPDATE и специфические блокировки модели с объединениями. См. transaction.LOCK для примера

options.skipLocked boolean
  • optional

Пропустить заблокированные строки. Поддерживается только в Postgres.

options.raw boolean
  • optional

Возвратить сырые результаты. См. sequelize.query для получения дополнительной информации.

options.logging Функция
  • optional
  • default: false

Функция, которая выполняется при запуске запроса для ведения журнала sql.

options.benchmark boolean
  • optional
  • default: false

Передать время выполнения запроса в миллисекундах в качестве второго аргумента функции ведения журнала (options.logging).

options.having Объект
  • optional

Параметры having

options.searchPath строка
  • optional
  • default: DEFAULT

Необязательный параметр для указания схемы search_path (только Postgres)

options.rejectOnEmpty boolean | Ошибка
  • optional
  • default: false

Выбрасывает ошибку, когда не найдено записей

Возвращаемое значение:

Promise<Массив<Модель>>

Пример:

Простой поиск с использованием AND и =
Model.findAll({
  where: {
    attr1: 42,
    attr2: 'cake'
  }
})

# WHERE attr1 = 42 AND attr2 = 'cake'
Использование больше, меньше и т. д.
const {gt, lte, ne, in: opIn} = Sequelize.Op;

Model.findAll({
  where: {
    attr1: {
      [gt]: 50
    },
    attr2: {
      [lte]: 45
    },
    attr3: {
      [opIn]: [1,2,3]
    },
    attr4: {
      [ne]: 5
    }
  }
})

# WHERE attr1 > 50 AND attr2 <= 45 AND attr3 IN (1,2,3) AND attr4 != 5
Запросы с использованием OR
const {or, and, gt, lt} = Sequelize.Op;

Model.findAll({
  where: {
    name: 'a project',
    [or]: [
      {id: [1, 2, 3]},
      {
        [and]: [
          {id: {[gt]: 10}},
          {id: {[lt]: 100}}
        ]
      }
    ]
  }
});

# WHERE `Model`.`name` = 'a project' AND (`Model`.`id` IN (1, 2, 3) OR (`Model`.`id` > 10 AND `Model`.`id` < 100));

См. также:

  • Операторы для возможных операторов __Псевдоним__: _все_ Обещание выполняется массивом экземпляров Model, если запрос выполнен успешно._
  • Sequelize#query

public static findAndCountAll(options: Объект): Promise<{count: число, rows: Модель[]}> source

Найти все строки, соответствующие вашему запросу, в рамках заданного смещения/лимита и получить общее количество строк, соответствующих вашему запросу. Это очень полезно для постраничной навигации

Параметры:

Имя Тип Атрибут Описание
options Объект
  • optional

См. параметры findAll

Возвращаемое значение:

Promise<{count: число, rows: Модель[]}>

Пример:

Model.findAndCountAll({
  where: ...,
  limit: 12,
  offset: 12
}).then(result => {
  ...
})

# In the above example, `result.rows` will contain rows 13 through 24, while `result.count` will return the total number of rows that matched your query.

# When you add includes, only those which are required (either because they have a where clause, or because `required` is explicitly set to true on the include) will be added to the count part.

# Suppose you want to find all users who have a profile attached:

User.findAndCountAll({
  include: [
     { model: Profile, required: true}
  ],
  limit 3
});

# Because the include for `Profile` has `required` set it will result in an inner join, and only the users who have a profile will be counted. If we remove `required` from the include, both users with and without profiles will be counted

См. также:

  • Model.findAll для спецификации параметров find и запросов
  • Model.count для спецификации параметров подсчёта

public static findByPk(param: number | string | Buffer, options: Object): Promise<Model> source

Поиск единственного экземпляра по первичному ключу.

Параметры:

Имя Тип Атрибут Описание
param number | string | Buffer

Значение первичного ключа искомого экземпляра.

options Object
  • необязательно

Опции поиска

options.transaction Transaction
  • необязательно

Транзакция для выполнения запроса

options.searchPath string
  • необязательно
  • по умолчанию: DEFAULT

Необязательный параметр для указания схемы search_path (только для Postgres)

Возвращает:

Promise<Model>

См. также:

  • Model.findAll для полного объяснения опций, обратите внимание, что options.where не поддерживается.

public static findCreateFind(options: Object): Promise<Model, boolean> source

Более производительный findOrCreate, который не будет работать в транзакции (по крайней мере, не в Postgres). Выполнит find, если пусто, то попытается создать, если уникальное ограничение, то попытается найти снова.

Параметры:

Имя Тип Атрибут Описание
options Object

Опции поиска

options.where Object

Хэш атрибутов поиска. Если where является простым объектом, он будет добавлен с значениями по умолчанию для создания нового экземпляра.

options.defaults Object
  • необязательно

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

Возвращает:

Promise<Model, boolean>

См. также:

  • Model.findAll для полного описания поиска и опций

public static findOne(options: Object): Promise<Model> source

Поиск единственного экземпляра. Применяется LIMIT 1, поэтому слушатель всегда будет вызван с единственным экземпляром.

Псевдоним: find

Параметры:

Имя Тип Атрибут Описание
options Object
  • необязательно

Хэш опций для описания области поиска

options.transaction Transaction
  • необязательно

Транзакция для выполнения запроса

options.searchPath string
  • необязательно
  • по умолчанию: DEFAULT

Необязательный параметр для указания схемы search_path (только для Postgres)

Возвращает:

Promise<Model>

См. также:

  • Model.findAll для объяснения опций

public static findOrBuild(options: Object): Promise<Model, boolean> source

Найти строку, соответствующую запросу, или создать (но не сохранять) строку, если она не найдена. Успешный результат промиса будет (экземпляр, создан)

Параметры:

Имя Тип Атрибут Описание
options Object

опции поиска

options.where Object

Хеш атрибутов поиска. Если where — обычный объект, к нему будут добавлены значения по умолчанию для создания нового экземпляра.

options.defaults Object
  • опционально

Значения по умолчанию для использования при создании нового экземпляра.

options.transaction Object
  • опционально

Транзакция для выполнения запроса.

Возвращает:

Promise<Model, boolean>

public static findOrCreate(options: Object): Promise<Model, boolean> source

Найти строку, соответствующую запросу, или создать и сохранить строку, если она не найдена. Успешный результат промиса будет (экземпляр, создан)

Если в объекте options не передана транзакция, внутри будет создана новая транзакция, чтобы предотвратить состояние гонки, при котором соответствующая строка создается другим подключением после поиска, но до вызова вставки. Однако в SQLite в таких случаях не всегда можно справиться с этим, особенно если одна транзакция вставляет, а другая пытается выбрать до того, как первая была подтверждена. В этом случае вместо этого будет выброшено исключение sequelize. TimeoutError. Если транзакция создается, вместо нее будет создан контрольный пункт, и любое нарушение уникального ограничения будет обработано внутри.

Параметры:

Имя Тип Атрибут Описание
options Object

опции поиска и создания

options.where Object

where Хеш атрибутов поиска. Если where — обычный объект, к нему будут добавлены значения по умолчанию для создания нового экземпляра.

options.defaults Object
  • опционально

Значения по умолчанию для использования при создании нового экземпляра.

options.transaction Transaction
  • опционально

Транзакция для выполнения запроса.

Возвращает:

Promise<Model, boolean>

См. также:

  • Model.findAll для полного описания поиска и опций

public static getTableName(): string | Object source

Получить имя таблицы модели, учитывая схему. Метод вернет имя в виде строки, если у модели нет схемы, или объект со свойствами tableName, schema и delimiter.

Возвращает:

string | Object

public static hasMany(target: Model, options: Object): HasMany source

Создаёт ассоциацию 1:м между этим (источником) и предоставленным целевым объектом. Внешний ключ добавляется к целевому объекту.

Параметры:

Имя Тип Атрибут Описание
target Model

Целевой объект модели

options Object
  • необязательно

Опции ассоциации hasMany

options.hooks boolean
  • необязательно
  • по умолчанию: false

Установите в значение true, чтобы запускать перед/после-удаления хуки при удалении связанной модели из-за каскадного удаления. Например, если User.hasOne(Profile, {onDelete: 'cascade', hooks:true}), перед/после-удаления хуки для профиля будут вызваны при удалении пользователя. В противном случае профиль будет удалён без вызова каких-либо хуков

options.as string | Object
  • необязательно

Псевдоним этой модели. Если вы передаёте строку, она должна быть во множественном числе, и будет сведена к единственному числу с помощью node.inflection. Если вы хотите самостоятельно управлять единственным числом, передайте объект с ключами plural и singular. Также см. опцию name, переданную в sequelize.define. Если вы создаёте несколько ассоциаций между одними и теми же таблицами, вам следует указать псевдоним, чтобы иметь возможность различать их. Если вы передаёте псевдоним при создании ассоциации, вам следует указать тот же псевдоним при условном загрузке и получении связанных моделей. По умолчанию устанавливается множественное число имени целевого объекта

options.foreignKey string | Object
  • необязательно

Имя внешнего ключа в целевой таблице или объект, представляющий определение типа для внешнего столбца (см. Sequelize.define для синтаксиса). При использовании объекта вы можете добавить свойство name для установки имени столбца. По умолчанию устанавливается имя источника + первичный ключ источника

options.sourceKey string
  • необязательно

Имя поля для использования в качестве ключа ассоциации в таблице источника. По умолчанию устанавливается первичный ключ таблицы источника

options.scope Object
  • необязательно

Набор ключ/значение, который будет использоваться для создания и поиска ассоциаций по умолчанию в целевой таблице. (sqlite не поддерживается для N:М)

options.onDelete string
  • необязательно
  • по умолчанию: 'SET NULL|CASCADE'

SET NULL, если внешний ключ допускает значения NULL, CASCADE в противном случае

options.onUpdate string
  • необязательно
  • по умолчанию: 'CASCADE'

Установить ON UPDATE

options.constraints boolean
  • необязательно
  • по умолчанию: true

Включить или отключить ограничения на обновление и удаление по внешнему ключу.

Возвращаемое значение:

HasMany

Пример:

User.hasMany(Profile) // This will add userId to the profile table

public static hasOne(target: Model, options: Object): HasOne source

Создаёт ассоциацию между этим (источником) и предоставленной целью. Внешний ключ добавляется к цели.

Параметры:

Имя Тип Атрибут Описание
target Model

Модель цели

options Object
  • необязательно

Параметры ассоциации hasOne

options.hooks boolean
  • необязательно
  • по умолчанию: false

Установите в значение true, чтобы запустить хуки before-/afterDestroy при удалении связанной модели из-за каскадного удаления. Например, если User.hasOne(Profile, {onDelete: 'cascade', hooks:true}), хуки before-/afterDestroy для профиля будут вызваны при удалении пользователя. В противном случае профиль будет удалён без вызова каких-либо хуков

options.as string
  • необязательно

Псевдоним этой модели в единственном числе. См. также параметр name, передаваемый в sequelize.define. Если вы создаёте несколько ассоциаций между одними и теми же таблицами, вам следует предоставить псевдоним, чтобы иметь возможность отличать их друг от друга. Если вы предоставляете псевдоним при создании ассоциации, вы должны предоставить тот же псевдоним при ленивой загрузке и при получении связанных моделей. По умолчанию используется единственное число от имени target

options.foreignKey string | Object
  • необязательно

Имя атрибута внешнего ключа в целевой модели или объект, представляющий определение типа для внешнего столбца (см. Sequelize.define для синтаксиса). При использовании объекта вы можете добавить свойство name для задания имени столбца. По умолчанию используется имя источника + первичный ключ источника

options.sourceKey string
  • необязательно

Имя атрибута, используемого в качестве ключа для ассоциации в таблице источника. По умолчанию используется первичный ключ таблицы источника

options.onDelete string
  • необязательно
  • по умолчанию: 'SET NULL|CASCADE'

SET NULL, если внешний ключ допускает значения NULL, CASCADE в противном случае

options.onUpdate string
  • необязательно
  • по умолчанию: 'CASCADE'

Устанавливает 'ON UPDATE'

options.constraints boolean
  • необязательно
  • по умолчанию: true

Должны ли быть включены ограничения on update и on delete для внешнего ключа.

options.uniqueKey string
  • необязательно

Пользовательское имя для ограничения уникальности.

Возвращаемое значение:

HasOne

Пример:

User.hasOne(Profile) // This will add userId to the profile table

public static increment(fields: string | Array | Object, options: Object): Promise<Model[], ?number> source

Увеличить значение одного или нескольких столбцов. Это делается в базе данных, что означает, что он не использует значения, хранящиеся в настоящее время в экземпляре. Увеличение выполняется с помощью запроса SET column = column + X WHERE foo = 'bar'. Чтобы получить правильное значение после увеличения в экземпляре, необходимо выполнить перезагрузку.

Параметры:

Имя Тип Атрибут Описание
fields string | Array | Object

Если предоставлена строка, этот столбец увеличивается на значение by , указанное в options. Если предоставлен массив, то же самое верно для каждого столбца. Если предоставлен объект, каждый столбец увеличивается на указанное значение.

options Object

Параметры увеличения

options.where Object

Словарь условий

options.by number
  • необязательно
  • значение по умолчанию: 1

Число, на которое нужно увеличить

options.silent boolean
  • необязательно
  • значение по умолчанию: false

Если true, метка времени updatedAt не будет обновляться.

options.logging Function
  • необязательно
  • значение по умолчанию: false

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

options.transaction Transaction
  • необязательно

Транзакция для выполнения запроса

options.searchPath string
  • необязательно
  • значение по умолчанию: DEFAULT

Необязательный параметр для указания пути поиска схемы (только Postgres)

Возвращаемое значение:

Promise<Model[], ?number>

Возвращает массив измененных строк и количества измененных строк с options.returning: true, если это поддерживается диалектом

Пример:

увеличение числа на 1
Model.increment('number', { where: { foo: 'bar' });
увеличение числа и счетчика на 2
Model.increment(['number', 'count'], { by: 2, where: { foo: 'bar' } });
увеличение ответа на 42 и уменьшение попыток на 1
// `by` is ignored, as each column has its own value
Model.increment({ answer: 42, tries: -1}, { by: 2, where: { foo: 'bar' } });

См. также:

  • Model#reload

public static init(attributes: Object, options: Object): Model source

Инициализировать модель, представляющую таблицу в БД, с атрибутами и параметрами.

Столбцы таблицы определяются хэшем, который передаётся в качестве первого аргумента. Каждый атрибут хэша представляет собой столбец.

Подробнее о Валидациях

Дополнительные примеры, Определение модели

Параметры:

Имя Тип Атрибут Описание
attributes Объект

Объект, где каждый атрибут — это столбец таблицы. Каждый столбец может быть типом данных, строкой или объектом описания типа с указанными ниже свойствами:

attributes.column строка | DataTypes | Объект

Описание столбца базы данных

attributes.column.type строка | DataTypes

Строка или тип данных

attributes.column.allowNull логическое значение
  • необязательно
  • значение по умолчанию: true

Если false, столбец будет иметь ограничение NOT NULL, и перед сохранением экземпляра будет выполнена проверка на непустоту.

attributes.column.defaultValue любое
  • необязательно
  • значение по умолчанию: null

Буквальное значение по умолчанию, функция JavaScript или функция SQL (см. sequelize.fn)

attributes.column.unique строка | логическое значение
  • необязательно
  • значение по умолчанию: false

Если true, столбец получит ограничение уникальности. Если указана строка, столбец будет частью составного индекса уникальности. Если несколько столбцов имеют одну и ту же строку, они будут частью одного и того же индекса уникальности

attributes.column.primaryKey логическое значение
  • необязательно
  • значение по умолчанию: false

Если true, этот атрибут будет помечен как первичный ключ

attributes.column.field строка
  • необязательно
  • значение по умолчанию: null

Если установлено, sequelize сопоставит имя атрибута с другим именем в базе данных

attributes.column.autoIncrement логическое значение
  • необязательно
  • значение по умолчанию: false

Если true, этот столбец будет установлен как автоинкрементный

attributes.column.autoIncrementIdentity логическое значение
  • необязательно
  • значение по умолчанию: false

Если true, в сочетании с autoIncrement=true, будет использоваться Postgres GENERATED BY DEFAULT AS IDENTITY вместо SERIAL. Только для Postgres 10+.

attributes.column.comment строка
  • необязательно
  • значение по умолчанию: null

Комментарий к этому столбцу

attributes.column.references строка | Модель
  • необязательно
  • значение по умолчанию: null

Объект с конфигурациями ссылки

attributes.column.references.model строка | Модель
  • необязательно

Если этот столбец ссылается на другую таблицу, укажите её здесь как Модель или строку

attributes.column.references.key строка
  • необязательно
  • значение по умолчанию: 'id'

Столбец внешней таблицы, на который ссылается этот столбец

attributes.column.onUpdate строка
  • необязательно

Что должно произойти при обновлении связанного ключа. Одно из CASCADE, RESTRICT, SET DEFAULT, SET NULL или NO ACTION

attributes.column.onDelete строка
  • необязательно

Что должно произойти при удалении связанного ключа. Одно из CASCADE, RESTRICT, SET DEFAULT, SET NULL или NO ACTION

attributes.column.get Функция
  • необязательно

Предоставьте пользовательский метод получения для этого столбца. Используйте this.getDataValue(String) для изменения базовых значений.

attributes.column.set Функция
  • необязательно

Предоставьте пользовательский метод установки для этого столбца. Используйте this.setDataValue(String, Value) для изменения базовых значений.

attributes.column.validate Объект
  • необязательно

Объект проверок для выполнения для этого столбца каждый раз, когда модель сохраняется. Может быть именем проверки, предоставленной validator.js, функцией проверки, предоставленной с помощью расширения validator.js (см. атрибут DAOValidator для получения дополнительных сведений), или пользовательской функцией проверки. Пользовательские функции проверки вызываются со значением поля и самим экземпляром в качестве this связи и, возможно, со вторым аргументом обратного вызова, чтобы указать, что они асинхронные. Если проверка синхронная, она должна вызывать исключение при неудачной проверке; если асинхронная, обратный вызов должен быть вызван с текстом ошибки.

options Объект

Эти параметры объединяются с параметрами по умолчанию define, предоставленными конструктору Sequelize.

options.sequelize Объект

Определите экземпляр sequelize, которому следует присоединить новую модель. Вызовите ошибку, если не указан.

options.modelName строка
  • необязательно

Установите имя модели. По умолчанию оно совпадает с именем класса.

options.defaultScope Объект
  • необязательный
  • по умолчанию: {}

Определите область поиска по умолчанию для этой модели. Области имеют тот же формат, что и параметры, передаваемые в find / findAll

options.scopes Объект
  • необязательный

Дополнительные области, определенные так же, как defaultScope выше. Смотрите Model.scope, чтобы узнать больше о том, как определяются области и что можно с ними сделать

options.omitNull boolean
  • необязательный

Не сохранять значения null. Это означает, что все столбцы со значениями null не будут сохранены

options.timestamps boolean
  • необязательный
  • по умолчанию: true

Добавляет метки времени createdAt и updatedAt к модели.

options.paranoid boolean
  • необязательный
  • по умолчанию: false

Вызов destroy не удалит модель, а вместо этого установит отметку deletedAt времени, если это значение true. Требуется timestamps=true для работы

options.underscored boolean
  • необязательный
  • по умолчанию: false

Добавить подчеркнутое поле ко всем атрибутам, это охватывает атрибуты, определенные пользователем, метки времени и внешние ключи. Не повлияет на атрибуты с явно заданным параметром field

options.freezeTableName boolean
  • необязательный
  • по умолчанию: false

Если freezeTableName имеет значение true, sequelize не будет пытаться изменить имя модели, чтобы получить имя таблицы. В противном случае имя модели будет сделано множественным

options.name Объект
  • необязательный

Объект с двумя атрибутами, singular и plural, которые используются, когда эта модель ассоциирована с другими.

options.name.singular строка
  • необязательный
  • по умолчанию: Utils.singularize(modelName)

Единственное имя для модели

options.name.plural строка
  • необязательный
  • по умолчанию: Utils.pluralize(modelName)

Множественное имя для модели

options.indexes Массив<Объект>
  • необязательный

определения индексов

options.indexes[].name строка
  • необязательный

Имя индекса. По умолчанию соответствует имени модели + _ + объединённые поля

options.indexes[].type строка
  • необязательный

Тип индекса. Используется только mysql. Один из UNIQUE, FULLTEXT и SPATIAL

options.indexes[].using строка
  • необязательный

Метод создания индекса (USING оператор в SQL). Поддерживаются BTREE и HASH в mysql и postgres, а также GIST и GIN в postgres.

options.indexes[].operator строка
  • необязательный

Укажите оператор индекса.

options.indexes[].unique boolean
  • необязательный
  • по умолчанию: false

Индекс должен быть уникальным? Также может быть активирован путем установки типа в UNIQUE

options.indexes[].concurrently boolean
  • необязательный
  • по умолчанию: false

PostgresSQL создаст индекс без блокировок записи. Только для Postgres

options.indexes[].fields Массив<строка|Объект>
  • необязательный

Массив полей для индексации. Каждое поле может быть строкой, содержащей имя поля, объектом sequelize (например, sequelize.fn), или объектом со следующими атрибутами: attribute (имя поля), length (создать префиксный индекс длиной chars), order (направление сортировки столбца), collate (сортировка столбца)

options.createdAt строка | boolean
  • необязательный

Переопределите имя атрибута createdAt, если предоставлена строка, или отключите его, если значение false. Timestamps должно быть true. Поле с подчеркиванием будет установлено с параметром underscored.

options.updatedAt строка | boolean
  • необязательный

Переопределите имя атрибута updatedAt, если предоставлена строка, или отключите его, если значение false. Timestamps должно быть true. Поле с подчеркиванием будет установлено с параметром underscored.

options.deletedAt строка | boolean
  • необязательный

Переопределите имя атрибута deletedAt, если предоставлена строка, или отключите его, если значение false. Timestamps должно быть true. Поле с подчеркиванием будет установлено с параметром underscored.

options.tableName строка
  • необязательно

По умолчанию используется множественное число от имени модели, если freezeTableName равен true, то используется имя модели дословно

options.schema строка
  • необязательно
  • по умолчанию: 'public'

схема

options.engine строка
  • необязательно

Указать движок для таблицы модели

options.charset строка
  • необязательно

Указать кодировку для таблицы модели

options.comment строка
  • необязательно

Указать комментарий для таблицы модели

options.collate строка
  • необязательно

Указать сортировку для таблицы модели

options.initialAutoIncrement строка
  • необязательно

Установить начальное значение AUTO_INCREMENT для таблицы в MySQL.

options.hooks Объект
  • необязательно

Объект с функциями обработчиков, которые вызываются до и после определённых событий жизненного цикла. Возможные обработчики: beforeValidate, afterValidate, validationFailed, beforeBulkCreate, beforeBulkDestroy, beforeBulkUpdate, beforeCreate, beforeDestroy, beforeUpdate, afterCreate, beforeSave, afterDestroy, afterUpdate, afterBulkCreate, afterSave, afterBulkDestroy и afterBulkUpdate. Дополнительную информацию об обработчиках и их сигнатурах см. в разделе Hooks. Каждая свойство может быть либо функцией, либо массивом функций.

options.validate Объект
  • необязательно

Объект валидаций на уровне модели. Валидации имеют доступ ко всем значениям модели через this. Если функция-валидатор принимает аргумент, предполагается, что она асинхронная, и вызывается с обратным вызовом, который принимает необязательную ошибку.

Возвращаемое значение:

Модель

Пример:

Project.init({
  columnA: {
    type: Sequelize.BOOLEAN,
    validate: {
      is: ['[a-z]','i'],        // will only allow letters
      max: 23,                  // only allow values <= 23
      isIn: {
        args: [['en', 'zh']],
        msg: "Must be English or Chinese"
      }
    },
    field: 'column_a'
    // Other attributes here
  },
  columnB: Sequelize.STRING,
  columnC: 'MY VERY OWN COLUMN TYPE'
}, {sequelize})

sequelize.models.modelName // The model will now be available in models under the class name

См. также:

  • Типы данных
  • Обработчики

публичный статический max(field: строка, options: Объект): Promise<*> исходный код

Найти максимальное значение поля

Параметры:

Имя Тип Атрибут Описание
field строка

Имя атрибута/поля

options Объект
  • необязательно

См. агрегирование

Возвращаемое значение:

Promise<*>

См. также:

  • Model.aggregate для параметров

публичный статический min(field: строка, options: Объект): Promise<*> исходный код

Найти минимальное значение поля

Параметры:

Имя Тип Атрибут Описание
field строка

Имя атрибута/поля

options Объект
  • необязательно

См. агрегирование

Возвращаемое значение:

Promise<*>

См. также:

  • Model.aggregate для параметров

публичный статический removeAttribute(attribute: строка) исходный код

Удалить атрибут из определения модели

Параметры:

Имя Тип Атрибут Описание
attribute строка

имя атрибута для удаления

public static restore(options: Object): Promise source

Восстановить несколько экземпляров, если paranoid включено.

Параметры:

Имя Тип Атрибут Описание
options Object

Параметры восстановления

options.where Object
  • необязательно

Фильтр для восстановления

options.hooks boolean
  • необязательно
  • по умолчанию: true

Выполнить хуки до/после массового восстановления?

options.individualHooks boolean
  • необязательно
  • по умолчанию: false

Если установлено в true, восстановление найдет все записи в параметре where и выполнит хуки перед/после bulkRestore для каждой строки

options.limit number
  • необязательно

Сколько строк восстановить (только для mysql)

options.logging Function
  • необязательно
  • по умолчанию: false

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

options.benchmark boolean
  • необязательно
  • по умолчанию: false

Передать время выполнения запроса в миллисекундах как второй аргумент функции логирования (options.logging).

options.transaction Transaction
  • необязательно

Транзакция для выполнения запроса

Возвращаемое значение:

Promise

public static schema(schema: string, options: Object): Model source

Применить схему к этой модели. Для postgres это фактически поместит схему перед именем таблицы - "schema"."tableName", в то время как для mysql и sqlite схема будет добавлена перед именем таблицы - 'schema.tablename'.

Этот метод предназначен для случаев, когда одна и та же модель требуется в нескольких схемах. В таком случае важно вызвать model.schema(schema, [options]).sync() для каждой модели, чтобы убедиться, что модели создаются в правильной схеме.

Если нужна одна схема по умолчанию на модель, установите параметр options.schema='schema' во время вызова define() для модели.

Параметры:

Имя Тип Атрибут Описание
schema string

Имя схемы

options Object
  • необязательно

Параметры схемы

options.schemaDelimiter string
  • необязательно
  • по умолчанию: '.'

Символ(ы), разделяющий имя схемы и имя таблицы

options.logging Function
  • необязательно
  • по умолчанию: false

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

options.benchmark boolean
  • необязательно
  • по умолчанию: false

Передать время выполнения запроса в миллисекундах как второй аргумент функции логирования (options.logging).

Возвращаемое значение:

Model

См. также:

  • Sequelize#define для получения дополнительной информации о настройке схемы по умолчанию.

public static scope(option: Array | Object | string): Model source

Применить созданный в define scope к модели.

Параметры:

Имя Тип Атрибут Описание
option Array | Object | string
  • необязательный
  • nullable: true

Применяемый scope. Scopes могут передаваться как последовательные аргументы, или в виде массива аргументов. Для применения простых scope и функций scope без аргументов, передайте их как строки. Для scope функций, передайте объект, с свойством method. Значение может быть строкой, если метод не принимает аргументы, или массивом, где первый элемент - имя метода, а последующие элементы - аргументы этого метода. Передайте null, чтобы удалить все scopes, включая по умолчанию.

Возвращаемое значение:

Model

Ссылка на модель, с примененным scope. Вызов scope повторно для возвращаемой модели очистит предыдущий scope.

Пример:

как создать scopes
const Model = sequelize.define('model', attributes, {
  defaultScope: {
    where: {
      username: 'dan'
    },
    limit: 12
  },
  scopes: {
    isALie: {
      where: {
        stuff: 'cake'
      }
    },
    complexFunction: function(email, accessLevel) {
      return {
        where: {
          email: {
            [Op.like]: email
          },
          access_level {
            [Op.gte]: accessLevel
          }
        }
      }
    }
  }
})

# As you have defined a default scope, every time you do Model.find, the default scope is appended to your query. Here's a couple of examples:

Model.findAll() // WHERE username = 'dan'
Model.findAll({ where: { age: { [Op.gt]: 12 } } }) // WHERE age > 12 AND username = 'dan'
Для вызова функций scope можно сделать
Model.scope({ method: ['complexFunction', 'dan@sequelize.com', 42]}).findAll()
// WHERE email like 'dan@sequelize.com%' AND access_level >= 42

public static sum(field: string, options: Object): Promise<number> source

Найти сумму поля

Параметры:

Имя Тип Атрибут Описание
field string

имя атрибута/поля

options Object
  • необязательный

См. агрегирование

Возвращаемое значение:

Promise<number>

См.:

  • Model.aggregate для параметров

public static sync(options: Object): Promise<Model> source

Синхронизировать эту модель с БД, то есть создать таблицу.

Параметры:

Имя Тип Атрибут Описание
options Object
  • необязательный

опции синхронизации

Возвращаемое значение:

Promise<Model>

См.:

  • Sequelize#sync для параметров

public static truncate(options: Object): Promise source

Обнулить все экземпляры модели. Это удобный метод для Model.destroy({ truncate: true }).

Параметры:

Имя Тип Атрибут Описание
options Object
  • необязательно

Параметры, передаваемые в Model.destroy дополнительно к truncate

options.cascade boolean | Function
  • необязательно
  • по умолчанию: false

Обнуляет все таблицы, имеющие внешние ключи, ссылающиеся на указанную таблицу или любые таблицы, добавленные в группу из-за CASCADE.

options.restartIdentity boolean
  • необязательно
  • по умолчанию: false

Автоматически перезапускает последовательности, принадлежащие столбцам усеченной таблицы.

options.transaction Transaction
  • необязательно

Транзакция для выполнения запроса

options.logging boolean | Function
  • необязательно

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

options.benchmark boolean
  • необязательно
  • по умолчанию: false

Передает время выполнения запроса в миллисекундах как второй аргумент функции регистрации (options.logging).

options.searchPath string
  • необязательно
  • по умолчанию: DEFAULT

Необязательный параметр для указания схемы search_path (только Postgres)

Возвращаемое значение:

Promise

См. также:

  • Model.destroy для получения дополнительной информации

public static unscoped(): Model source

Получить модель без ограничений

Возвращаемое значение:

Model

public static update(values: Object, options: Object): Promise<Array<number, number>> source

Обновить несколько записей, соответствующих параметрам where.

Параметры:

Имя Тип Атрибут Описание
values Object

Хеш значений для обновления

options Object

Параметры обновления

options.where Object

Параметры для определения области поиска.

options.paranoid boolean
  • необязательно
  • по умолчанию: true

Если true, будут обновлены только не удалённые записи. Если false, будут обновлены и удалённые, и не удалённые. Применимо только если options.paranoid для модели равно true.

options.fields Array
  • необязательно

Поля для обновления (по умолчанию все поля)

options.validate boolean
  • необязательно
  • по умолчанию: true

Должна ли каждая строка пройти валидацию перед вставкой? Весь ввод провалится, если одна строка не пройдёт валидацию

options.hooks boolean
  • необязательно
  • по умолчанию: true

Выполнить хуки перед/после массового обновления?

options.sideEffects boolean
  • необязательно
  • по умолчанию: true

Обновлять ли побочные эффекты виртуальных сетеров?

options.individualHooks boolean
  • необязательно
  • по умолчанию: false

Выполнить хуки перед/после обновления? Если true, это выполнит SELECT, за которым последуют отдельные UPDATE. SELECT необходим, так как данные строки должны передаваться в хуки

options.returning boolean
  • необязательно
  • по умолчанию: false

Возвратить затронутые строки (только для postgres)

options.limit number
  • необязательно

Сколько строк обновить (только для mysql и mariadb, реализовано как TOP(n) для MSSQL; для sqlite поддерживается только при наличии rowid)

options.logging Function
  • необязательно
  • по умолчанию: false

Функция, которая выполняется во время выполнения запроса для протоколирования sql.

options.benchmark boolean
  • необязательно
  • по умолчанию: false

Передать время выполнения запроса в миллисекундах в качестве второго аргумента функции протоколирования (options.logging).

options.transaction Transaction
  • необязательно

Транзакция для выполнения запроса

options.silent boolean
  • необязательно
  • по умолчанию: false

Если true, метка времени updatedAt не будет обновлена.

Возвращает:

Promise<Array<number, number>>

Promise возвращает массив из одной или двух элементов. Первый элемент всегда — количество затронутых строк, а второй — сами затронутые строки (поддерживается только в postgres с options.returning true.)

public static upsert(values: Object, options: Object): Promise<boolean> source

Вставка или обновление одной строки. Обновление будет выполнено, если найдена строка, соответствующая предоставленным значениям по первичному ключу или уникальному ключу. Обратите внимание, что уникальный индекс должен быть определен в вашей модели Sequelize, а не только в таблице. В противном случае может произойти нарушение уникального ограничения, потому что Sequelize не может идентифицировать строку, которая должна быть обновлена.

Подробности реализации:

  • MySQL - Реализовано как одно запроса INSERT values ON DUPLICATE KEY UPDATE values
  • PostgreSQL - Реализовано как временная функция с обработкой исключений: INSERT EXCEPTION WHEN unique_constraint UPDATE
  • SQLite - Реализовано как два запроса INSERT; UPDATE. Это означает, что обновление выполняется независимо от того, существовала ли строка ранее или нет
  • MSSQL - Реализовано как один запрос с использованием MERGE и WHEN (NOT) MATCHED THEN Примечание, что SQLite возвращает undefined для созданных, независимо от того, была ли строка создана или обновлена. Это связано с тем, что SQLite всегда выполняет INSERT OR IGNORE + UPDATE в одном запросе, поэтому нет способа узнать, была ли строка вставлена или нет.

Параметры:

Имя Тип Атрибут Описание
values Object

Хэш значений для вставки/обновления

options Object
  • необязательно

Опции upsert

options.validate boolean
  • необязательно
  • по умолчанию: true

Выполнить валидацию перед вставкой строки

options.fields Array
  • необязательно
  • по умолчанию: Object.keys(this.attributes)

Поля для вставки/обновления. По умолчанию все измененные поля

options.hooks boolean
  • необязательно
  • по умолчанию: true

Выполнить хуки до/после upsert?

options.returning boolean
  • необязательно
  • по умолчанию: false

Добавить RETURNING * для получения сгенерированных значений (только Postgres)

options.transaction Transaction
  • необязательно

Транзакция для выполнения запроса

options.logging Function
  • необязательно
  • по умолчанию: false

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

options.benchmark boolean
  • необязательно
  • по умолчанию: false

Передать время выполнения запроса в миллисекундах как второй аргумент функции логирования (options.logging).

options.searchPath string
  • необязательно
  • по умолчанию: DEFAULT

Необязательный параметр для указания schema search_path (только Postgres)

Возвращаемое значение:

Promise<boolean>

Возвращает логическое значение, указывающее, была ли строка создана или обновлена. Для MySQL/MariaDB возвращает true при вставке и false при обновлении. Для Postgres/MSSQL с (options.returning=true), возвращает запись и логическое значение created со структурой <Model, created>.

Публичные конструкторы

public constructor(values: Object, options: Object) source

Создает новую модель экземпляра.

Параметры:

Имя Тип Атрибут Описание
values Object
  • необязательно
  • по умолчанию: {}

объект пар ключ-значение

options Object
  • необязательно

опции создания экземпляра

options.raw boolean
  • необязательно
  • по умолчанию: false

Если установлено в true, значения будут игнорировать обработчики полей и виртуальных свойств.

options.isNewRecord boolean
  • необязательно
  • по умолчанию: true

Это новая запись?

options.include Array
  • необязательно

массив опций include - используется для построения предварительно извлеченных/включенных экземпляров моделей. См. set

Открытые члены

public isNewRecord: boolean: * source

Возвращает true, если этот экземпляр еще не был сохранен в базе данных

Свойства:

Имя Тип Атрибут Описание
isNewRecord *

Возвращаемое значение:

boolean

Свойства возвращаемого значения:

Имя Тип Атрибут Описание
isNewRecord *

public get sequelize: Sequelize: * source

Ссылка на экземпляр sequelize

Свойства:

Имя Тип Атрибут Описание
sequelize *

Возвращаемое значение:

Sequelize

Свойства возвращаемого значения:

Имя Тип Атрибут Описание
sequelize *

См. также:

  • Sequelize

Общедоступные методы

public changed(key: string, value: any): boolean | Array source

Если changed вызывается со строковым значением, то он вернёт булево значение, указывающее, отличается ли значение данного ключа в dataValues от значения в _previousDataValues.

Если changed вызывается без аргумента, то он вернёт массив ключей, которые изменились.

Если changed вызывается без аргумента и ключи не изменились, то он вернёт false.

Параметры:

Имя Тип Атрибут Описание
key string
  • необязательный

ключ для проверки или изменения статуса

value any
  • необязательный

значение для установки

Возвращаемое значение:

boolean | Array

public decrement(fields: string | Array | Object, options: Object): Promise source

Уменьшает значение одного или нескольких столбцов. Это делается в базе данных, а значит, не использует значения, хранящиеся в текущем экземпляре. Уменьшение выполняется с помощью

SET column = column - X

запроса. Обновлённый экземпляр будет возвращен по умолчанию в Postgres. Однако в других диалектах вам потребуется выполнить перезагрузку, чтобы получить новые значения.

Параметры:

Имя Тип Атрибут Описание
fields string | Array | Object

Если передано строковое значение, то столбец уменьшается на значение by указанное в options. Если передан массив, то это же верно для каждого столбца. Если передан объект, то каждый столбец уменьшается на значение, указанное

options Object
  • необязательный

опции для уменьшения

options.by number
  • необязательный
  • по умолчанию: 1

На сколько уменьшить

options.silent boolean
  • необязательный
  • по умолчанию: false

Если true, метка времени updatedAt не будет обновляться.

options.logging Function
  • необязательный
  • по умолчанию: false

Функция, которая вызывается во время выполнения запроса для записи SQL.

options.transaction Transaction
  • необязательный

Транзакция для выполнения запроса

options.searchPath string
  • необязательный
  • по умолчанию: DEFAULT

Необязательный параметр для указания пути поиска схемы (только Postgres)

options.returning boolean
  • необязательный
  • по умолчанию: true

Добавление RETURNING * для получения сгенерированных значений (только Postgres)

Возвращаемое значение:

Promise

Пример:

instance.decrement('number') // decrement number by 1

instance.decrement(['number', 'count'], { by: 2 }) // decrement number and count by 2

// decrement answer by 42, and tries by 1.
// `by` is ignored, since each column has its own value
instance.decrement({ answer: 42, tries: 1}, { by: 2 })

См. также:

  • Model#reload

public destroy(options: Объект): Promise source

Удалить строку, соответствующую этому экземпляру. В зависимости от настроек параметра paranoid, строка будет либо полностью удалена, либо её метка удаления (deletedAt) будет установлена на текущее время.

Параметры:

Имя Тип Атрибут Описание
options Объект
  • необязательно
  • по умолчанию: {}

Параметры удаления

options.force boolean
  • необязательно
  • по умолчанию: false

Если установлено в true, модели paranoid будут фактически удалены

options.logging Функция
  • необязательно
  • по умолчанию: false

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

options.transaction Транзакция
  • необязательно

Транзакция для выполнения запроса.

options.searchPath строка
  • необязательно
  • по умолчанию: DEFAULT

Необязательный параметр для указания поиска схемы search_path (только для Postgres)

Возвращает:

Promise

public equals(other: Модель): boolean source

Проверка, ссылаются ли этот и other экземпляр на одну и ту же строку.

Параметры:

Имя Тип Атрибут Описание
other Модель

Другой экземпляр для сравнения.

Возвращает:

boolean

public equalsOneOf(others: Массив<Модель>): boolean source

Проверка, равен ли этот экземпляр одному из others путём вызова equals.

Параметры:

Имя Тип Атрибут Описание
others Массив<Модель>

Массив экземпляров для проверки.

Возвращает:

boolean

public get(key: строка, options: Объект): Объект | любое source

Если ключ не указан, возвращает все значения экземпляра, вызывая также виртуальные геттеры.

Если ключ указан и для ключа присутствует поле или виртуальный геттер, будет вызван этот геттер - иначе вернётся значение для ключа.

Параметры:

Имя Тип Атрибут Описание
key строка
  • необязательно

Ключ для получения значения.

options Объект
  • необязательно

Параметры получения.

options.plain boolean
  • необязательно
  • по умолчанию: false

Если установлено в true, включенные экземпляры будут возвращены как обычные объекты.

options.raw boolean
  • необязательно
  • по умолчанию: false

Если установлено в true, поля и виртуальные установщики будут проигнорированы.

Возвращает:

Объект | любое

public getDataValue(key: строка): любое source

Получить значение базового значения данных.

Параметры:

Имя Тип Атрибут Описание
key строка

ключ для поиска в хранилище данных экземпляра.

Возвращает:

любое

public increment(fields: string | Array | Object, options: Object): Promise<Model> since 4.0.0 source

Увеличить значение одного или нескольких столбцов. Это выполняется в базе данных, что означает, что он не использует значения, хранящиеся в настоящее время в экземпляре. Увеличение выполняется с помощью

SET column = column + X

запроса. Обновлённый экземпляр по умолчанию будет возвращен в Postgres. Однако в других диалектах вам потребуется выполнить перезагрузку, чтобы получить новые значения.

Параметры:

Имя Тип Атрибут Описание
fields string | Array | Object

Если предоставлена строка, этот столбец увеличивается на значение by , заданное в параметрах. Если предоставлен массив, то же самое верно для каждого столбца. Если предоставлен объект, каждый столбец увеличивается на заданное значение.

options Object
  • необязательно

параметры

options.by number
  • необязательно
  • по умолчанию: 1

Число, на которое нужно увеличить

options.silent boolean
  • необязательно
  • по умолчанию: false

Если true, метка времени updatedAt не будет обновлена.

options.logging Function
  • необязательно
  • по умолчанию: false

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

options.transaction Transaction
  • необязательно

Транзакция для выполнения запроса.

options.searchPath string
  • необязательно
  • по умолчанию: DEFAULT

Необязательный параметр для указания пути поиска схемы (только Postgres).

options.returning boolean
  • необязательно
  • по умолчанию: true

Добавить RETURNING * для получения сгенерированных автоматически значений (только Postgres).

Возвращаемое значение:

Promise<Model>

Пример:

instance.increment('number') // increment number by 1

instance.increment(['number', 'count'], { by: 2 }) // increment number and count by 2

// increment answer by 42, and tries by 1.
// `by` is ignored, since each column has its own value
instance.increment({ answer: 42, tries: 1}, { by: 2 })

См. также:

  • Model#reload

public isSoftDeleted(): boolean source

Вспомогательный метод для определения, является ли экземпляр «мягко удаленным». Это особенно полезно, если реализующий переименовал атрибут deletedAt на что-то другое. Для этого метода требуется paranoid.

Возвращаемое значение:

boolean

public previous(key: string): any | Array<any> source

Возвращает предыдущее значение для ключа из _previousDataValues.

Если вызывается без ключа, возвращает предыдущие значения для всех измененных значений.

Параметры:

Имя Тип Атрибут Описание
key string
  • необязательно

Ключ, для которого нужно получить предыдущее значение.

Возвращаемое значение:

any | Array<any>

public reload(options: Object): Promise<Model> source

Обновить текущий экземпляр на месте, т. е. обновить объект текущими данными из базы данных и вернуть тот же объект. Это отличается от выполнения find(Instance.id), так как это создаст и вернёт новый экземпляр. С помощью этого метода все ссылки на экземпляр обновляются новыми данными, и новые объекты не создаются.

Параметры:

Имя Тип Атрибут Описание
options Object
  • необязательный

Параметры, которые передаются в Model.find

options.logging Function
  • необязательный
  • по умолчанию: false

Функция, которая выполняется во время выполнения запроса для записи SQL.

Возвращаемое значение:

Promise<Model>

См. также:

  • Model.findAll

public restore(options: Object): Promise source

Восстановить строку, соответствующую этому экземпляру. Доступно только для модели paranoid.

Параметры:

Имя Тип Атрибут Описание
options Object
  • необязательный
  • по умолчанию: {}

Параметры восстановления

options.logging Function
  • необязательный
  • по умолчанию: false

Функция, которая выполняется во время выполнения запроса для записи SQL.

options.transaction Transaction
  • необязательный

Транзакция, в рамках которой выполняется запрос

Возвращаемое значение:

Promise

public save(options: Object): Promise<Model> source

Проверить этот экземпляр и, если проверка пройдена, сохранить его в базе данных. Сохраняются только изменённые поля, и ничего не делается, если поля не изменились.

При успехе обратный вызов будет вызван с этим экземпляром. При ошибке проверки обратный вызов будет вызван с экземпляром Sequelize.ValidationError. Эта ошибка будет иметь свойство для каждого поля, для которого проверка не пройдена, с сообщением об ошибке для этого поля.

Параметры:

Имя Тип Атрибут Описание
options Object
  • необязательный

Параметры сохранения

options.fields string[]
  • необязательный

Необязательный массив строк, представляющих столбцы базы данных. Если fields указан, будут проверены и сохранены только эти столбцы.

options.silent boolean
  • необязательный
  • по умолчанию: false

Если true, метка времени updatedAt не будет обновляться.

options.validate boolean
  • необязательный
  • по умолчанию: true

Если false, проверки не будут выполняться.

options.hooks boolean
  • необязательный
  • по умолчанию: true

Выполнить до и после создания/обновления + валидации хуки

options.logging Function
  • необязательный
  • по умолчанию: false

Функция, которая выполняется во время выполнения запроса для записи SQL.

options.transaction Transaction
  • необязательный

Транзакция, в рамках которой выполняется запрос

options.searchPath string
  • необязательный
  • по умолчанию: DEFAULT

Необязательный параметр для указания пути поиска схемы (только Postgres)

options.returning boolean
  • необязательный

Добавить RETURNING * для получения сгенерированных значений (только Postgres)

Возвращаемое значение:

Promise<Model>

public set(key: string | Object, value: any, options: Object): Model source

Метод set используется для обновления значений экземпляра (представление экземпляра в Sequelize, помните, что ничего не будет сохранено, пока вы явно не вызовете save). В самом простом случае set обновит значение, хранящееся в базовом объекте dataValues. Однако, если для ключа определена пользовательская функция-сеттер, будет вызвана именно она. Чтобы обойти сеттер, можно передать raw: true в объекте опций.

Если set вызывается с объектом, он перебирает свойства объекта и рекурсивно вызывает set для каждой пары ключ-значение. Если вы установите raw в true, базовые данные dataValues будут либо напрямую установлены в переданный объект, либо использованы для расширения dataValues, если dataValues уже содержат значения.

При вызове set предыдущее значение поля сохраняется, и устанавливается флаг изменения (см. changed).

Set также может использоваться для построения экземпляров для ассоциаций, если у вас есть значения для них. При использовании set с ассоциациями необходимо убедиться, что ключ свойства соответствует псевдониму ассоциации, а также что установлены правильные параметры include (из .build() или .findOne())

Если вызвано с точечно-разделенным ключом для атрибута JSON/JSONB, значение будет установлено вложенным образом, а весь объект будет помечен как измененный.

Параметры:

Имя Тип Атрибут Описание
key string | Object

Ключ для установки, может быть строкой или объектом. Если строка, устанавливается значение для этого ключа, для объекта перебираются все свойства объекта и устанавливаются значения.

value any

Значение для установки

options Object
  • необязательно

Опции для установки

options.raw boolean
  • необязательно
  • по умолчанию: false

Если установлено в true, поля и виртуальные сеттеры будут проигнорированы

options.reset boolean
  • необязательно
  • по умолчанию: false

Очистить все ранее установленные значения данных

Возвращает:

Model

См. также:

  • Model.findAll для получения более подробной информации об include

public setDataValue(key: string, value: any) source

Обновить базовое значение данных

Параметры:

Имя Тип Атрибут Описание
key string

Ключ для установки в хранилище данных экземпляра

value any

новое значение для данного ключа

public toJSON(): Object source

Преобразовать экземпляр в представление JSON. Выполняет get без ключей. Это означает, что получает все значения, полученные из БД, и применяет все пользовательские геттеры.

Возвращает:

Object

См. также:

  • Model#get

public update(values: Object, options: Object): Promise<Model> source

Это то же самое, что вызов set и затем save, но сохраняются только точные значения, переданные ему, что делает его более атомным и безопасным.

Параметры:

Имя Тип Атрибут Описание
values Object

См. set

options Object

См. save

Возвращает:

Promise<Model>

См. также:

  • Model#set
  • Model#save

public validate(options: Object): Promise source

Проверить атрибуты этого экземпляра в соответствии с правилами проверки, заданными в определении модели.

Обещание выполняется только в случае успешной проверки; в противном случае оно отклоняется экземпляром Error, содержащим записи { имя_поля : [сообщения_об_ошибках] }.

Параметры:

Имя Тип Атрибут Описание
options Object
  • необязательно

Параметры, передаваемые валидатору

options.skip Массив
  • необязательно

Массив строк. Все свойства, которые находятся в этом массиве, не будут проверены

options.fields Массив
  • необязательно

Массив строк. Только свойства, которые находятся в этом массиве, будут проверены

options.hooks boolean
  • необязательно
  • по умолчанию: true

Запустить перед и после хуков валидации

Возвращаемое значение:

Promise

public where(checkVersion: boolean): Object source

Получить объект, представляющий запрос для этого экземпляра, использовать с options.where

Параметры:

Имя Тип Атрибут Описание
checkVersion boolean
  • необязательно
  • по умолчанию: false

включить атрибут версии в хэше where

Возвращаемое значение:

Объект

Copyright © 2014–present Sequelize contributors
Licensed under the MIT License.
https://sequelize.org/v5/class/lib/model.js~Model.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API