Spec-Zone.ru › Sequelize 4
Статический публичный обзор
public

DataTypes: *

Класс-помощник, содержащий часто используемые типы данных.

public

Deferrable: *

Коллекция свойств, связанных с отложенными ограничениями.

public

Op: {"eq": *, "ne": *, "gte": *, "gt": *, "lte": *, "lt": *, "not": *, "is": *, "in": *, "notIn": *, "like": *, "notLike": *, "iLike": *, "notILike": *, "regexp": *, "notRegexp": *, "iRegexp": *, "notIRegexp": *, "between": *, "notBetween": *, "overlap": *, "contains": *, "contained": *, "adjacent": *, "strictLeft": *, "strictRight": *, "noExtendRight": *, "noExtendLeft": *, "and": *, "or": *, "any": *, "all": *, "values": *, "col": *, "placeholder": *, "join": *, "raw": *}

Символы операторов, используемые при запросе данных

public

QueryTypes: *

Перечисление типов запросов, используемых sequelize.query

public

TableHints: *

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

Статический публичный

public DataTypes: * source

Класс-помощник, содержащий часто используемые типы данных. Типы данных используются при определении новой модели с помощью Sequelize.define, например так:

sequelize.define('model', {
  column: DataTypes.INTEGER
})

При определении модели вы также можете передать строку в качестве типа, но часто использование типов, определенных здесь, выгодно. Например, использование DataTypes.BLOB, означает, что этот столбец будет возвращен как экземпляр Buffer при извлечении с помощью sequelize.

Для указания длины типа данных вы можете вызвать его как функцию: INTEGER(2)

У некоторых типов данных есть особые свойства, которые можно использовать для изменения типа данных. Например, для получения целого неотрицательного числа с нулевым заполнением, вы можете сделать DataTypes.INTEGER.UNSIGNED.ZEROFILL. Порядок доступа к свойствам не имеет значения, поэтому DataTypes.INTEGER.ZEROFILL.UNSIGNED тоже подойдет.

  • Все числовые типы (INTEGER, BIGINT, FLOAT, DOUBLE, REAL, DECIMAL) поддерживают свойства UNSIGNED и ZEROFILL
  • Типы CHAR и STRING поддерживают свойство BINARY

Три из предоставленных значений (NOW, UUIDV1 и UUIDV4) являются специальными значениями по умолчанию, которые не следует использовать для определения типов. Вместо этого они используются в качестве сокращений для определения значений по умолчанию. Например, для получения поля uuid со значением по умолчанию, сгенерированным в соответствии со стандартом UUID v1:

sequelize.define('model',` {
  uuid: {
    type: DataTypes.UUID,
    defaultValue: DataTypes.UUIDV1,
    primaryKey: true
  }
})

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

sequelize.define('model', {
  uuid: {
    type: DataTypes.UUID,
    defaultValue: function() {
      return generateMyId()
    },
    primaryKey: true
  }
})

Свойства:

Имя Тип Атрибут Описание
STRING функция(длина=255: целое число)

Строка переменной длины

CHAR функция(длина=255: целое число)

Строка фиксированной длины.

TEXT функция(длина: строка)

Текстовый столбец неограниченной длины. Доступные длины: tiny, medium, long.

TINYINT функция(длина: целое число)

Целое число 8 бит.

SMALLINT функция(длина: целое число)

Целое число 16 бит.

MEDIUMINT функция(длина: целое число)

Целое число 24 бит.

INTEGER функция(длина=255: целое число)

Целое число 32 бит.

BIGINT функция(длина: целое число)

Целое число 64 бит. Примечание: атрибут, определенный как BIGINT, будет обрабатываться как string, благодаря этой возможности node-postgres, чтобы предотвратить потерю точности. Чтобы иметь этот атрибут как number, это возможное решение.

FLOAT функция(длина: целое число, десятичные знаки: целое число)

Число с плавающей точкой (4 байта точности).

DOUBLE функция(длина: целое число, десятичные знаки: целое число)

Число с плавающей точкой (8 байт точности).

DECIMAL функция(точность: целое число, масштаб: целое число)

Десятичное число.

REAL функция(длина: целое число, десятичные знаки: целое число)

Число с плавающей точкой (4 байта точности).

BOOLEAN функция

Булевый/столбец tinyint, в зависимости от диалекта

BLOB функция(длина: строка)

Двоичное хранилище. Доступные длины: tiny, medium, long.

ENUM функция(значения: строка[])

Перечисление. DataTypes.ENUM('value', 'another value').

DATE функция(длина: целое число)

Столбец datetime

DATEONLY функция

Столбец только с датой (без метки времени)

TIME функция

Столбец времени

NOW функция

Значение по умолчанию — текущая метка времени

UUID функция

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

UUIDV1 функция

Уникальный универсальный идентификатор по умолчанию, сгенерированный в соответствии со стандартом UUID v1

UUIDV4 функция

Уникальный универсальный идентификатор по умолчанию, сгенерированный в соответствии со стандартом UUID v4

HSTORE функция

Столбец для хранения пар «ключ-значение». Доступен только в Postgres.

JSON функция

Столбец JSON-строки. Доступен в MySQL, Postgres и SQLite

JSONB функция

Столбец JSON с двоичным хранилищем. Доступен только в Postgres.

ARRAY функция(тип: DataTypes)

Массив type, например DataTypes.ARRAY(DataTypes.DECIMAL). Доступен только в Postgres.

RANGE функция(тип: DataTypes)

Типы диапазонов — это типы данных, представляющие диапазон значений некоторого типа элемента (называемого подтипом диапазона). Доступны только в Postgres. Подробнее см. документацию Postgres.

GEOMETRY функция(тип: строка, srid: строка)

Столбец, хранящий геометрическую информацию. Доступен только в PostgreSQL (с PostGIS) или MySQL. В MySQL допустимые типы геометрии: POINT, LINESTRING, POLYGON.

GeoJSON принимается в качестве входных данных и возвращается в качестве выходных данных. В PostGIS GeoJSON анализируется с помощью функции PostGIS ST_GeomFromGeoJSON. В MySQL — с помощью функции GeomFromText. Поэтому можно просто следовать спецификации GeoJSON для обработки геометрических объектов. Смотрите примеры:

// Create a new point:
const point = { type: 'Point', coordinates: [39.807222,-76.984722]};

User.create({username: 'username', geometry: point });

// Create a new linestring:
const line = { type: 'LineString', 'coordinates': [ [100.0, 0.0], [101.0, 1.0] ] };

User.create({username: 'username', geometry: line });

// Create a new polygon:
const polygon = { type: 'Polygon', coordinates: [
                [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],
                  [100.0, 1.0], [100.0, 0.0] ]
                ]};

User.create({username: 'username', geometry: polygon });

// Create a new point with a custom SRID:
const point = {
  type: 'Point',
  coordinates: [39.807222,-76.984722],
  crs: { type: 'name', properties: { name: 'EPSG:4326'} }
};

User.create({username: 'username', geometry: point })
GEOGRAPHY функция(тип: строка, srid: строка)

Тип данных geography представляет двумерные пространственные объекты в эллиптической системе координат.

VIRTUAL функция(возвращаемый тип: DataTypes, поля: строка[])

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

Вы также можете использовать его для проверки значения перед его преобразованием и сохранением. Например, проверка длины пароля перед его хэшированием:

sequelize.define('user', {
  password_hash: DataTypes.STRING,
  password: {
    type: DataTypes.VIRTUAL,
    set: function (val) {
       // Remember to set the data value, otherwise it won't be validated
       this.setDataValue('password', val);
       this.setDataValue('password_hash', this.salt + val);
     },
     validate: {
        isLongEnough: function (val) {
          if (val.length < 7) {
            throw new Error("Please choose a longer password")
         }
      }
    }
  }
})

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

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

{
  active: {
    type: new DataTypes.VIRTUAL(DataTypes.BOOLEAN, ['createdAt']),
    get: function() {
      return this.get('createdAt') > Date.now() - (7 * 24 * 60 * 60 * 1000)
    }
  }
}

public Deferrable: * source

Коллекция свойств, связанных с отложенными ограничениями. Может использоваться для откладывания проверки ограничений внешнего ключа и для задания ограничений в рамках транзакции. Поддерживается только в PostgreSQL.

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

sequelize.define('Model', {
  foreign_id: {
    type: Sequelize.INTEGER,
    references: {
      model: OtherModel,
      key: 'id',
      deferrable: Sequelize.Deferrable.INITIALLY_IMMEDIATE
    }
  }
});

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

sequelize.transaction({
  deferrable: Sequelize.Deferrable.SET_DEFERRED
});

Свойства:

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

Отложить проверку ограничений до конца транзакции.

INITIALLY_IMMEDIATE *

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

NOT *

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

SET_DEFERRED *
SET_IMMEDIATE *

public Op: {"eq": *, "ne": *, "gte": *, "gt": *, "lte": *, "lt": *, "not": *, "is": *, "in": *, "notIn": *, "like": *, "notLike": *, "iLike": *, "notILike": *, "regexp": *, "notRegexp": *, "iRegexp": *, "notIRegexp": *, "between": *, "notBetween": *, "overlap": *, "contains": *, "contained": *, "adjacent": *, "strictLeft": *, "strictRight": *, "noExtendRight": *, "noExtendLeft": *, "and": *, "or": *, "any": *, "all": *, "values": *, "col": *, "placeholder": *, "join": *, "raw": *} source

Символы операторов, которые используются при запросе данных

Свойства:

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

См. также:

  • Model#where

public QueryTypes: * source

Список типов запросов, используемых sequelize.query$

Свойства:

Имя Тип Атрибут Описание
SELECT *
INSERT *
UPDATE *
BULKUPDATE *
BULKDELETE *
DELETE *
UPSERT *
VERSION *
SHOWTABLES *
SHOWINDEXES *
DESCRIBE *
RAW *
FOREIGNKEYS *
SHOWCONSTRAINTS *

См. также:

  • Sequelize#query

public TableHints: * source

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

Свойства:

Имя Тип Атрибут Описание
NOLOCK *
READUNCOMMITTED *
UPDLOCK *
REPEATABLEREAD *
SERIALIZABLE *
READCOMMITTED *
TABLOCK *
TABLOCKX *
PAGLOCK *
ROWLOCK *
NOWAIT *
READPAST *
XLOCK *
SNAPSHOT *
NOEXPAND *

Copyright © 2014–present Sequelize contributors
Licensed under the MIT License.
https://sequelize.org/v4/variable/index.html

Spec-Zone.ru

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