Spec-Zone.ru › Sequelize 4

Модель

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

Экземпляры модели работают с концепцией свойства 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(field: String, aggregateFunction: String, options: Object): Promise<DataTypes|object>

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

public static

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

Создает ассоциацию между этим (источником) и указанным объектом назначения.

public static

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

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

public static

build(options: Object): Model | Model[]

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

public static

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

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

public static

count(options: Object): Promise<Integer>

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

public static

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

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

public static

decrement(fields: *, options: *): Promise<this>

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

since 4.36.0
public static

describe(schema: *, options: *): Promise

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

public static

destroy(options: Object): Promise<Integer>

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

public static

drop(options: Object): Promise

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

public static

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

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

public static

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

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

public static

findByPk(id: Number | String | Buffer, options: Object): Promise<Model>

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

public static

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

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

public static

findOne(options: Object): Promise<Model>

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

public static

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

Поиск строки, соответствующей запросу, или создание (но не сохранение) строки, если не найдено. Успешный результат промиса будет (instance, initialized) - убедитесь, что используете .spread()

Псевдоним: findOrInitialize

public static

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

Поиск строки, соответствующей запросу, или создание и сохранение строки, если не найдено. Успешный результат промиса будет (instance, created) - убедитесь, что используете .spread()

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<this>

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

public static

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

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

public static

max(field: String, options: Object): Promise<Any>

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

public static

min(field: String, options: Object): Promise<Any>

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

public static

removeAttribute(attribute: String)

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

public static

restore(options: Object): Promise<undefined>

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

public static

schema(schema: String, options: Object): this

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

public static

scope(options: Array | Object | String | null): Model

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

public static

sum(field: String, options: Object): Promise<Number>

Находит сумму поля

public static

sync(options: *): Promise<this>

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

public static

truncate(options: object): Promise

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

public static

unscoped(): Model

public static

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

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

public static

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

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

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

Public Constructor
public

constructor(values: Object, options: Object)

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

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

Public Members
public

isNewRecord: Boolean: *

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

public get

sequelize: Sequelize: *

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

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

Методы публичного доступа
public

changed(key: String): Boolean | Array

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

public

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

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

public

destroy(options: Object): Promise<undefined>

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

public

equals(other: Model): Boolean

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

public

equalsOneOf(others: Array): 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<this>

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

с версии 4.0.0
public

isSoftDeleted(): Boolean

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

public

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

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

public

reload(options: Object): Promise<this>

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

public

restore(options: Object): Promise<undefined>

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

public

save(options: Object): Promise<this|Errors.ValidationError>

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

public

set(key: String | Object, value: any, options: Object): *

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

public

setDataValue(key: String, value: any)

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

public

toJSON(): object

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

public

update(updates: Object, options: Object): Promise<this>

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

public

validate(options: Object): Promise<undefined>

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

public

where(checkVersion: *): Object

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

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

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

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

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

Параметры:

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

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

scope Object | Function
options Object
  • необязательный
options.override Boolean
  • необязательный
  • значение по умолчанию: false

public static aggregate(field: String, aggregateFunction: String, options: Object): Promise<DataTypes|object> source

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

Параметры:

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

Поле для агрегирования. Может быть именем поля или *

aggregateFunction String

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

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

Опции запроса. Смотрите sequelize.query для полных опций

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

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

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

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

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

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

options.dataType DataTypes | String
  • необязательный

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

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

Применяет DISTINCT к агрегируемому полю.

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

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

options.plain Boolean
  • необязательный

Если 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 object
  • необязательный
options.hooks boolean
  • необязательный
  • по умолчанию: false

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

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

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

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

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

options.targetKey string
  • необязательный

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

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

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

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

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

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

BelongsTo

Пример:

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

public static belongsToMany(target: Модель, options: объект): BelongsToMany источник

Создать ассоциацию многие-ко-многим с таблицей соединения. Определение through обязательно.

Параметры:

Имя Тип Атрибут Описание
target Модель
options объект
options.hooks boolean
  • необязательно
  • значение по умолчанию: false

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

options.through Модель | строка | объект

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

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

Модель, используемая для соединения обеих сторон ассоциации многие-ко-многим.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Каскадирование, если это многие-ко-многим, и установка NULL, если это один-ко-многим.

options.onUpdate строка
  • необязательно
  • значение по умолчанию: 'CASCADE'
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(options: Объект): Модель | Модель[] источник

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

Параметры:

Имя Тип Атрибут Описание
(values|values[]) Объект
  • необязательно
  • значение по умолчанию: {}

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

options Объект
  • необязательно
options.raw Булево
  • необязательно
  • значение по умолчанию: false

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

options.isNewRecord Булево
  • необязательно
  • значение по умолчанию: true
options.include Массив
  • необязательно

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

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

Модель | Модель[]

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

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

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

Поля для обновления, если строка ключа уже существует (обновление при дублировании ключа)? (поддерживается только mysql). По умолчанию все поля обновляются.

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

Транзакция, в рамках которой выполняется запрос.

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

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

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

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

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

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

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

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

Возвращает:

Promise<Array<Model>>

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

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

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

Параметры:

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

Хеш-таблица атрибутов поиска.

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

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

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

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

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

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

options.col String
  • необязательно

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

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

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

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

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

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

Транзакция, в рамках которой выполняется запрос.

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

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

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

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

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

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

Возвращает:

Promise<Integer>

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 Array
  • необязательно

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

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

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

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

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

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

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

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

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

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

Выполнить хуки before и after create / update + validate.

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

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

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

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

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

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

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

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

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

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

Возвращает:

Promise<Model>

См. также:

  • Model#build
  • Model#save

public static decrement(fields: *, options: *): Promise<this> с 4.36.0 source

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

// decrement number by 1
Model.decrement('number', { where: { foo: 'bar' });

// decrement number and count by 2
Model.decrement(['number', 'count'], { by: 2, where: { foo: 'bar' } });

// decrement answer by 42, and decrement tries by -1.
// `by` is ignored, since each column has its own value
Model.decrement({ answer: 42, tries: -1}, { by: 2, where: { foo: 'bar' } });

Параметры:

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

Возвращает:

Promise<this>

См. также:

  • Model#increment
  • Model#reload

public static describe(schema: *, options: *): Promise source

Выполняет запрос describe для таблицы. Результат будет возвращён слушателю как хеш атрибутов и их типов.

Параметры:

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

Возвращает:

Promise

public static destroy(options: Object): Promise<Integer> 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

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

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

Promise<Integer>

Количество строк, удалённых

public static drop(options: Object): Promise source

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

Параметры:

Имя Тип Атрибут Описание
options Object
  • необязательно
options.cascade Boolean
  • необязательно
  • значение по умолчанию: false

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

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

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

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

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

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

Promise

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

Найти несколько экземпляров.

Простой поиск с использованием 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));

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

Параметры:

Имя Тип Атрибут Описание
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 }), при жадной загрузке Y необходимо указать 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

Использовать оператор OR вместо AND при объединении ON и WHERE условий.

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

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

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

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

options.include[].required Булево
  • необязательно

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

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.order Массив | fn | col | literal
  • необязательно

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

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

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

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

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

options.raw Булево
  • необязательно

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

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

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

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

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

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

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

options.rejectOnEmpty Булево | Ошибка
  • необязательный
  • по умолчанию: false

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

Возврат:

Обещание<Массив<Модель>>

публичный статический findAndCountAll(findOptions: Объект): Обещание<{count: Целое число, rows: Модель[]}> исходный код

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

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

В приведенном выше примере result.rows будет содержать строки с 13-й по 24-ю, а result.count вернёт общее количество строк, соответствующих вашему запросу.

Когда вы добавляете include, будут добавлены только те, которые необходимы (либо потому, что у них есть условие where, либо потому, что required явно установлено в true для include).

Предположим, что вы хотите найти всех пользователей, у которых есть прикреплённый профиль:

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

Поскольку include для Profile имеет required установленное, это приведёт к внутреннему объединению, и будут подсчитаны только пользователи, у которых есть профиль. Если мы удалим required из include, будут подсчитаны как пользователи с профилем, так и без него.

Параметры:

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

См. findAll

Возврат:

Обещание<{count: Целое число, rows: Модель[]}>

См. также:

  • Модель.findAll для спецификации параметров find и запроса

публичный статический findByPk(id: Число | Строка | Буфер, options: Объект): Обещание<Модель> исходный код

Поиск одной записи по её первичному ключу.

Параметры:

Имя Тип Атрибут Описание
id Число | Строка | Буфер

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

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

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

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

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

Возврат:

Обещание<Модель>

См. также:

  • Модель.findAll для полного объяснения параметров

публичный статический findCreateFind(options: Объект): Обещание<Модель, создано> исходный код

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

Параметры:

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

where Словарь атрибутов поиска.

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

Значения по умолчанию для использования при создании новой записи

Возврат:

Обещание<Модель, создано>

См. также:

  • Модель.findAll для полной спецификации find и параметров

публичный статический findOne(options: Объект): Обещание<Модель> исходный код

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

Псевдоним: find

Параметры:

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

Словарь параметров для описания области поиска

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

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

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

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

Возврат:

Обещание<Модель>

См. также:

  • Модель.findAll для объяснения параметров

public static findOrBuild(options: Object): Promise<Модель, initialized> source

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

Псевдоним: findOrInitialize

Параметры:

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

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

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

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

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

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

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

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

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

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

Возвращает:

Promise<Модель, initialized>

public static findOrCreate(options: Object): Promise<Модель, created> source

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

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

Параметры:

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

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

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

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

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

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

Возвращает:

Promise<Модель, created>

См. также:

  • Модель.findAll для полного описания поиска и параметров

public static getTableName(): Строка | Объект source

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

Возвращает:

Строка | Объект

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

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

Параметры:

Имя Тип Атрибут Описание
target Model
options object
  • опционально
options.hooks boolean
  • опционально
  • по умолчанию: false

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

options.as string | object
  • опционально

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

options.foreignKey string | object
  • опционально

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

options.sourceKey string
  • опционально

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

options.scope object
  • опционально

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

options.onDelete string
  • опционально
  • по умолчанию: 'SET NULL|CASCADE'

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

options.onUpdate string
  • опционально
  • по умолчанию: 'CASCADE'
options.constraints boolean
  • опционально
  • по умолчанию: true

Следует ли включить ограничения on update и on delete для внешнего ключа.

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

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
  • опционально
options.hooks boolean
  • опционально
  • по умолчанию: false

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

options.as string
  • опционально

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

options.foreignKey string | object
  • опционально

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

options.onDelete string
  • опционально
  • по умолчанию: 'SET NULL|CASCADE'

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

options.onUpdate string
  • опционально
  • по умолчанию: 'CASCADE'
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<this> source

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

// increment number by 1
Model.increment('number', { where: { foo: 'bar' });

// increment number and count by 2
Model.increment(['number', 'count'], { by: 2, where: { foo: 'bar' } });

// increment answer by 42, and decrement tries by 1.
// `by` is ignored, since each column has its own value
Model.increment({ answer: 42, tries: -1}, { by: 2, where: { foo: 'bar' } });

Параметры:

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

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

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

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

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

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

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

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

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

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

Возвращает:

Promise<this>

См. также:

  • Model#reload

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

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

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

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

Как показано выше, определения столбцов могут быть строками, ссылкой на один из предопределенных типов данных в конструкторе Sequelize или объектом, который позволяет вам указать тип столбца и другие атрибуты, такие как значения по умолчанию, ограничения внешних ключей и настраиваемые сеттеры и геттеры.

Список возможных типов данных см. в DataTypes

Дополнительную информацию о валидации см. в http://docs.sequelizejs.com/manual/tutorial/models-definition.html#validations

Параметры:

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

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

attributes.column Строка | ТипыДанных | Объект

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

attributes.column.type Строка | ТипыДанных

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

attributes.column.allowNull Булево
  • необязательный
  • по умолчанию: true

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

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

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

attributes.column.unique Строка | Булево
  • необязательный
  • по умолчанию: false

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

attributes.column.primaryKey Булево
  • необязательный
  • по умолчанию: false
attributes.column.field Строка
  • необязательный
  • по умолчанию: null

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

attributes.column.autoIncrement Булево
  • необязательный
  • по умолчанию: false
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.validate Объект
  • необязательный

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

options Объект

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

options.sequelize Объект

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Преобразует все столбцы с camelCase в underscored, если значение true. Не повлияет на поля timestamp, явно переименованные в параметрах модели, и не повлияет на поля с явно установленным параметром field

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

Преобразует имена моделей с camelCase в underscored имена таблиц, если значение true. Не изменит имя модели, если freezeTableName установлено в true

options.freezeTableName Булево
  • необязательный
  • по умолчанию: 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[].method Строка
  • необязательно

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

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

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

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

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

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

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

options.createdAt Строка | Булево
  • необязательно

Заменить имя столбца createdAt, если задано строкой, или отключить, если false. Маркеры времени должны быть true. Не влияет на underscored.

options.updatedAt Строка | Булево
  • необязательно

Заменить имя столбца updatedAt, если задано строкой, или отключить, если false. Маркеры времени должны быть true. Не влияет на underscored.

options.deletedAt Строка | Булево
  • необязательно

Заменить имя столбца deletedAt, если задано строкой, или отключить, если false. Маркеры времени должны быть 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, afterDestroy, afterUpdate, afterBulkCreate, afterBulkDestory и afterBulkUpdate. См. Hooks для получения дополнительной информации о функциях обратного вызова и их сигнатурах. Каждая свойство может быть функцией или массивом функций.

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

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

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

Модель

См. также:

  • DataTypes
  • Hooks

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

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

Параметры:

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

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

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

Promise<Любой>

См. также:

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

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

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

Параметры:

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

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

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

Promise<Любой>

См. также:

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

public static removeAttribute(attribute: String) source

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

Параметры:

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

public static restore(options: Object): Promise<undefined> 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<undefined>

public static schema(schema: String, options: Object): this 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).

Возвращает:

this

См.:

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

public static scope(options: Array | Object | String | null): Model source

Применить созданный в define 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
          },
          accesss_level {
            [Op.gte]: accessLevel
          }
        }
      }
    }
  }
})

Теперь, так как вы определили стандартный scope, каждый раз, когда вы делаете Model.find, стандартный scope добавляется к вашему запросу. Вот несколько примеров:

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

Параметры:

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

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

Возвращает:

Model

Ссылка на модель с применённым(ыми) scope(ами). Повторный вызов scope на возвращённой модели очистит предыдущий scope.

public static sum(field: String, options: Object): Promise<Number> source

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

Параметры:

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

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

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

Promise<Number>

См. также:

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

public static sync(options: *): Promise<this> source

Синхронизировать эту модель с БД, то есть создать таблицу. При успехе, колбэк будет вызван с экземпляром модели (this)

Параметры:

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

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

Promise<this>

См. также:

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

public static truncate(options: object): Promise source

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

Параметры:

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

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

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

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

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

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

options.logging Boolean | function
  • необязательно

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

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

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

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

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

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

Promise

См. также:

  • Model#destroy для получения более подробной информации

public static unscoped(): Model source

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

Model

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

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

Параметры:

Имя Тип Атрибут Описание
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<affectedCount, affectedRows>>

public static upsert(values: Object, options: Object): Promise<created> 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 возвращает неопределённое значение для created, независимо от того, была строка создана или обновлена. Это связано с тем, что SQLite всегда выполняет INSERT OR IGNORE + UPDATE в одном запросе, поэтому нет способа узнать, была ли строка вставлена или нет.

Псевдоним: insertOrUpdate

Параметры:

Имя Тип Атрибут Описание
values Object
options Object
  • необязательно
options.validate Boolean
  • необязательно
  • по умолчанию: true

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

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

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

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

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

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<created>

Возвращает логическое значение, указывающее, была ли строка создана или обновлена. Для Postgres/MSSQL с (options.returning=true), возвращает запись и boolean 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): Boolean | Array source

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

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

Если changed вызывается без аргумента и ключи не изменились, он вернёт false.

Параметры:

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

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

Boolean | Array

public decrement(fields: String | Array | Object, options: Object): Promise source

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

SET column = column - X

запроса. Обновлённый экземпляр будет возвращён по умолчанию в Postgres. Однако в других диалектах вам потребуется выполнить reload, чтобы получить новые значения.

instance.decrement('number') // decrement number by 1
instance.decrement(['number', 'count'], { by: 2 }) // decrement number and count by 2
instance.decrement({ answer: 42, tries: 1}, { by: 2 }) // decrement answer by 42, and tries by 1.
                                                       // `by` is ignored, since each column has its own value

Параметры:

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

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

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

Число, на которое уменьшать

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

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

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

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

options.transaction Transaction
  • необязательный
options.searchPath String
  • необязательный
  • по умолчанию: DEFAULT

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

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

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

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

Promise

См. также:

  • Model#reload

public destroy(options: Object): Promise<undefined> source

Удалить строку, соответствующую этому экземпляру. В зависимости от вашего настроя paranoid, строка будет либо полностью удалена, либо её отметка времени deletedAt будет установлена на текущее время.

Параметры:

Имя Тип Атрибут Описание
options Object
  • необязательный
  • по умолчанию: {}
options.force Boolean
  • необязательный
  • по умолчанию: false

Если true, модели paranoid будут фактически удалены

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

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

options.transaction Transaction
  • необязательный
options.searchPath String
  • необязательный
  • по умолчанию: DEFAULT

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

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

Promise<undefined>

public equals(other: Model): Boolean source

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

Параметры:

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

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

Boolean

public equalsOneOf(others: Array): Boolean source

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

Параметры:

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

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

Boolean

public get(key: String, options: Object): Object | any source

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

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

Параметры:

Имя Тип Атрибут Описание
key String
  • необязательно
options Object
  • необязательно
options.plain Boolean
  • необязательно
  • по умолчанию: false

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

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

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

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

Object | any

public getDataValue(key: String): any source

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

Параметры:

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

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

any

public increment(fields: String | Array | Object, options: Object): Promise<this> с 4.0.0 source

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

SET column = column + X

запроса. Обновленный экземпляр будет возвращен по умолчанию в Postgres. Однако в других диалектах вам потребуется выполнить перезагрузку, чтобы получить новые значения.

instance.increment('number') // increment number by 1
instance.increment(['number', 'count'], { by: 2 }) // increment number and count by 2
instance.increment({ answer: 42, tries: 1}, { by: 2 }) // increment answer by 42, and tries by 1.
                                                       // `by` is ignored, since each column has its own value

Параметры:

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

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

options Object
  • необязательно
options.by Integer
  • необязательно
  • по умолчанию: 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<this>

См. также:

  • 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<this> source

Обновить текущий экземпляр на месте, т.е. обновить объект текущими данными из базы данных и вернуть тот же объект. Это отличается от выполнения find(Instance.id), так как это создаст и вернёт новый экземпляр. С помощью этого метода все ссылки на экземпляр обновляются с новыми данными, и новые объекты не создаются.

Параметры:

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

Параметры, передаваемые в Model.find

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

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

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

Promise<this>

См. также:

  • Model.findAll

public restore(options: Object): Promise<undefined> source

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

Параметры:

Имя Тип Атрибут Описание
options Object
  • необязательно
  • значение по умолчанию: {}
options.logging Функция
  • необязательно
  • значение по умолчанию: false

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

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

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

Promise<undefined>

public save(options: Object): Promise<this|Errors.ValidationError> source

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

При успехе коллбэк будет вызван с этим экземпляром. При ошибке проверки коллбэк будет вызван с экземпляром Sequelize.ValidationError. Эта ошибка будет иметь свойство для каждого из полей, для которых проверка не прошла, с сообщением об ошибке для этого поля.

Параметры:

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

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

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

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

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

Если false, проверки не будут выполняться.

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

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

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

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

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

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

options.returning Булево
  • необязательно

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

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

Promise<this|Errors.ValidationError>

public set(key: String | Object, value: any, options: Object): * source

Метод set используется для обновления значений в экземпляре (представление экземпляра Sequelize, помните, что ничего не будет сохранено, пока вы не вызовете save). В самом простом случае set обновит значение, хранящееся в базовом объекте dataValues. Однако, если для ключа определена пользовательская функция-сеттер, будет вызвана именно она. Чтобы обойти сеттер, вы можете передать raw: true в объект options.

Если set вызывается с объектом, он перебирает его и рекурсивно вызывает set для каждой пары ключ-значение. Если вы установите raw в true, базовые dataValues будут либо напрямую установлены в переданный объект, либо будут использованы для расширения dataValues, если в dataValues уже есть значения.

При вызове set предыдущее значение поля сохраняется и устанавливается флаг изменения (см. changed).

Метод set также может использоваться для создания экземпляров для ассоциаций, если у вас есть значения для них. При использовании set с ассоциациями необходимо убедиться, что ключ свойства соответствует псевдониму ассоциации, а также что установлены соответствующие опции include (из .build() или .find()).

Если вызов set используется с точкой, разделяющей ключ, для атрибута JSON/JSONB, значение будет установлено вложенно, и весь объект будет помечен как изменённый.

Параметры:

Имя Тип Атрибут Описание
key String | Object
value any
options Object
  • опционально
options.raw Boolean
  • опционально
  • по умолчанию: false

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

options.reset Boolean
  • опционально
  • по умолчанию: false

Очистить все ранее установленные значения данных

Возвращает:

*

См. также:

  • 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(updates: Object, options: Object): Promise<this> source

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

Параметры:

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

См. set

options Object

См. save

Возвращает:

Promise<this>

См. также:

  • Model#set
  • Model#save

public validate(options: Object): Promise<undefined> source

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

Обещание выполняется только в том случае, если валидация прошла успешно; в противном случае оно отклоняется с экземпляром Error, содержащим записи { имя_поля : [сообщения_об_ошибках] }.

Параметры:

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

Опции, которые передаются валидатору

options.skip Array
  • опционально

Массив строк. Все свойства, которые находятся в этом массиве, не будут проверены

options.fields Array
  • опционально

Массив строк. Только свойства, которые находятся в этом массиве, будут проверены

options.hooks Boolean
  • опционально
  • по умолчанию: true

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

Возвращает:

Promise<undefined>

public where(checkVersion: *): Object source

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

Параметры:

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

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

Object

Свойства возвращаемого значения:

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

Copyright © 2014–present Sequelize contributors
Licensed under the MIT License.
https://sequelize.org/v4/class/lib/model.js~Model.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API