【发布时间】:2021-09-02 00:33:28
【问题描述】:
我已经定义了一个 Sequelize 模型,但我想要一个使用其他列查询结果的列。 喜欢:
const test = sequelize.define('test', {
geom: {
type: DataTypes.GEOMETRY('POINT', 4326),
//value: sequelize.query(`SELECT ST_SetSRID(ST_MakePoint(${coordx}, ${coordy}),4326)`)
},
coordx: {
type: DataTypes.DECIMAL,
allowNull: false
},
coordy: {
type: DataTypes.DECIMAL,
allowNull: false
}
}, {
timestamps: false
})
如您所见,我想使用 coordx 和 coordy 并转换为 Geometry 并将其值添加到 geom 列
【问题讨论】:
-
geom列是否存在于数据库中,还是续集virtual column?如果有可能只有一个 PostgreSQL generated column 然后将其映射到 sequelize 中的
DataTypes.GEOMETRY属性,那么除非 coordx 或 coordy 在数据库中发生更改,否则您不必重新计算它,对吧? -
假设该列在 DB 中,但没有任何价值。在每一行中,它从 coordx 和 coordy 计算中获取其值。
-
我做了更多的挖掘工作,看起来可能有更好的方法来代替虚拟列的续集。我试图在下面的答案中解释。希望这会有所帮助!
标签: javascript node.js sequelize.js