Sequelize Model,使用PostgreSQL / PostGIS函数设置值

时间:2016-01-29 15:47:18

标签: postgresql postgis sequelize.js

是否可以设置Sequelize模型,以便使用PostgreSQL(或PostGIS,在我的情况下)函数将实例写入数据库?

我的数据库利用了PostGIS,我希望得到" the_geom"作为纬度和经度的函数写成:

var Site = sequelize.define('site', {
  the_geom: 'geometry(Point,4326)',
  latitude: DataTypes.DECIMAL,
  longitude: DataTypes.DECIMAL
});

the_geom的值通常是这样的:

ST_SetSRID(ST_MakePoint(-76.622,39.277),4326)

1 个答案:

答案 0 :(得分:3)

我能够使用钩子实现我想要的结果:

var Site = sequelize.define('site', {
        the_geom: 'geometry(Point,4326)',
        latitude: DataTypes.DECIMAL,
        longitude: DataTypes.DECIMAL
}, {
  hooks: {
      afterValidate: function (site, options) {
        site.the_geom = sequelize.fn('ST_SetSRID', sequelize.fn('ST_MakePoint', site.longitude, site.latitude), '4326');
      }
    }
  });