如何在sequilize中将对象作为数据类型传递给数据模型?

如何在sequilize中将对象作为数据类型传递给数据模型?

问题描述:

我需要传递一些不是原始数据类型的东西.

I need to pass something that is not a primitive to the data type.

我正在构建这样的东西以发送到 create 方法:

I am constructing something like this to send to the create method:

const p2 = {
          location_model: {
          latitude: lat,
           longitude: lng
      },
        establishment_id: createdEstablishment.id
      }

正如你所看到的,instruction_id 是 Integer 类型,而 location_model 是一个对象

As you can see the establishment_id is of type Integer but the location_model is an object

这是我的模型

module.exports = {
  up: (queryInterface, DataTypes) => {
    return queryInterface.createTable('EstablishmentLocation', {
      location_model: {
        type: // need some datatype that accept's an object of that type
        allowNull: false,
        references: {
          model: 'Location',
          key: 'id',
        },
      },
      establishment_id: {
        type: DataTypes.INTEGER,
        allowNull: false,
        references: {
          model: 'Establishment',
          key: 'id',
        },
      },
      createdAt: {
        allowNull: false,
        type: DataTypes.STRING,
        defaultValue: DataTypes.STRING,
      },
      updatedAt: {
        allowNull: false,
        type: DataTypes.STRING,
        defaultValue: DataTypes.STRING,
      }
    });
  },

  down: (queryInterface) => {
    return queryInterface.dropTable('EstablishmentLocation');
  }
};

我的问题是,如何在 sequilize 中将对象传递给数据类型?

My question is, how can I pass an object to a data type in sequilize?

您在模型中提供的 type 是您使用的数据库中定义的类型.如果您使用 postgresql,则可以使用 DataTypes.JSON 作为类型.

The type you provide in the model are the types defined in the database you use. If you are using postgresql, you can use DataTypes.JSON as the type.

如果没有,要保存对象,您可以JSON.stringify对象并将其作为字符串传递.

If not, to save object, you can JSON.stringify the object and pass it as a string.