使用 PostgreSQL/PostGIS 函数设置值的 Sequelize 模型
Sequelize Model where value is set using a PostgreSQL/PostGIS function
是否可以通过使用 PostgreSQL(或 PostGIS,在我的例子中)函数将实例写入数据库的方式来设置 Sequelize 模型?
我的数据库利用了 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)
我能够使用钩子实现我想要的结果:
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');
}
}
});
是否可以通过使用 PostgreSQL(或 PostGIS,在我的例子中)函数将实例写入数据库的方式来设置 Sequelize 模型?
我的数据库利用了 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)
我能够使用钩子实现我想要的结果:
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');
}
}
});