Эта документация была автоматически переведена ИИ.
Коллекция используется для определения моделей данных в системе, таких как имена моделей, поля, индексы, связи и другая информация.
Обычно она вызывается через метод collection экземпляра Database в качестве точки входа-прокси.
Больше типов полей смотрите в разделе Поля.
Сигнатура
constructor(options: CollectionOptions, context: CollectionContext)Параметры
| Параметр | Тип | Значение по умолчанию | Описание |
|---|---|---|---|
options.name | string | - | Идентификатор коллекции |
options.tableName? | string | - | Имя таблицы в базе данных. Если не указано, будет использоваться значение options.name. |
options.fields? | FieldOptions[] | - | Определения полей. Подробности смотрите в разделе Поле. |
options.model? | string | ModelStatic<Model> | - | Тип модели Sequelize. Если используется string, имя модели должно быть предварительно зарегистрировано в базе данных. |
options.repository? | string | RepositoryType | - | Тип репозитория. Если используется string, тип репозитория должен быть предварительно зарегистрирован в базе данных. |
options.sortable? | string | boolean | { name?: string; scopeKey?: string } | - | Конфигурация поля для сортировки данных. По умолчанию сортировка не применяется. |
options.autoGenId? | boolean | true | Автоматически генерировать уникальный первичный ключ. По умолчанию true. |
context.database | Database | - | Экземпляр базы данных в текущем контексте. |
Пример
Создание коллекции постов:
optionsНачальные параметры конфигурации коллекции. Совпадают с параметром options конструктора.
contextКонтекст, к которому принадлежит текущая коллекция; в настоящее время это в основном экземпляр базы данных.
nameИмя коллекции.
dbЭкземпляр базы данных, к которому она принадлежит.
filterTargetKeyИмя поля, используемого в качестве первичного ключа.
isThroughЯвляется ли это промежуточной коллекцией.
modelСоответствует типу модели Sequelize.
repositoryЭкземпляр репозитория.
getField()Получает объект поля с соответствующим именем, определенный в коллекции.
Сигнатура
getField(name: string): FieldПараметры
| Параметр | Тип | Значение по умолчанию | Описание |
|---|---|---|---|
name | string | - | Имя поля |
Пример
setField()Устанавливает поле для коллекции.
Сигнатура
setField(name: string, options: FieldOptions): FieldПараметры
| Параметр | Тип | Значение по умолчанию | Описание |
|---|---|---|---|
name | string | - | Имя поля |
options | FieldOptions | - | Конфигурация поля. Подробности смотрите в разделе Поле. |
Пример
setFields()Массово устанавливает несколько полей для коллекции.
Сигнатура
setFields(fields: FieldOptions[], resetFields = true): Field[]Параметры
| Параметр | Тип | Значение по умолчанию | Описание |
|---|---|---|---|
fields | FieldOptions[] | - | Конфигурация полей. Подробности смотрите в разделе Поле. |
resetFields | boolean | true | Сбрасывать ли существующие поля. |
Пример
removeField()Удаляет объект поля с соответствующим именем, определенный в коллекции.
Сигнатура
removeField(name: string): void | FieldПараметры
| Параметр | Тип | Значение по умолчанию | Описание |
|---|---|---|---|
name | string | - | Имя поля |
Пример
resetFields()Сбрасывает (очищает) поля коллекции.
Сигнатура
resetFields(): voidПример
hasField()Проверяет, определен ли в коллекции объект поля с соответствующим именем.
Сигнатура
hasField(name: string): booleanПараметры
| Параметр | Тип | Значение по умолчанию | Описание |
|---|---|---|---|
name | string | - | Имя поля |
Пример
findField()Находит в коллекции объект поля, соответствующий заданным критериям.
Сигнатура
findField(predicate: (field: Field) => boolean): Field | undefinedПараметры
| Параметр | Тип | Значение по умолчанию | Описание |
|---|---|---|---|
predicate | (field: Field) => boolean | - | Критерии поиска |
Пример
forEachField()Перебирает объекты полей в коллекции.
Сигнатура
forEachField(callback: (field: Field) => void): voidПараметры
| Параметр | Тип | Значение по умолчанию | Описание |
|---|---|---|---|
callback | (field: Field) => void | - | Функция обратного вызова |
Пример
addIndex()Добавляет индекс к коллекции.
Сигнатура
addIndex(index: string | string[] | { fields: string[], unique?: boolean,[key: string]: any })Параметры
| Параметр | Тип | Значение по умолчанию | Описание |
|---|---|---|---|
index | string | string[] | - | Имя(имена) поля(полей) для индексирования. |
index | { fields: string[], unique?: boolean, [key: string]: any } | - | Полная конфигурация. |
Пример
removeIndex()Удаляет индекс из коллекции.
Сигнатура
removeIndex(fields: string[])Параметры
| Параметр | Тип | Значение по умолчанию | Описание |
|---|---|---|---|
fields | string[] | - | Комбинация имен полей для удаляемого индекса. |
Пример
remove()Удаляет коллекцию.
Сигнатура
remove(): voidПример
sync()Синхронизирует определение коллекции с базой данных. Помимо стандартной логики Model.sync в Sequelize, этот метод также обрабатывает коллекции, соответствующие полям связей.
Сигнатура
sync(): Promise<void>Пример
existsInDb()Проверяет, существует ли коллекция в базе данных.
Сигнатура
existsInDb(options?: Transactionable): Promise<boolean>Параметры
| Параметр | Тип | Значение по умолчанию | Описание |
|---|---|---|---|
options?.transaction | Transaction | - | Экземпляр транзакции |
Пример
removeFromDb()Сигнатура
removeFromDb(): Promise<void>Пример