Sequelize.js 如何在sequelize with mySQL中定义和使用地理点
我正在使用sequelize ORM连接到MYSQL数据库-如何在表/对象模型中定义地理点?既然sequelize没有点数据类型,我可以只传入一个表示MYSQL类型的字符串吗Sequelize.js 如何在sequelize with mySQL中定义和使用地理点,sequelize.js,Sequelize.js,我正在使用sequelize ORM连接到MYSQL数据库-如何在表/对象模型中定义地理点?既然sequelize没有点数据类型,我可以只传入一个表示MYSQL类型的字符串吗 db.define(modelName, { id: { type: Sequelize.INTEGER, primaryKey: true, autoIncrement: true, allowNull: false }, locat
db.define(modelName, {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false
},
location:{
type:'POINT' //how would I define this??
},
createdBy: {
type: Sequelize.INTEGER,
references: {
model: 'User',
key: 'id'
}
},
photoId: {
type: Sequelize.UUID
},
caption: {
type: Sequelize.STRING
}
}
您可以通过
STRING
创建它,并在实例上创建一个自定义toJSON
实现,这样您就可以获得所需的点
在这些实例方法上,您还可以定义一个toJSON
自定义方法,当通过res.send(obj)
发送对象时,将自动调用该方法,因为3.4.0续集支持postgres的几何体。基于提交消息,还支持MySQL
可以像这样添加新属性:
point: {
type: Sequelize.GEOMETRY('POINT'),
},
MySQL支持的应用程序有:
var SUPPORTED_GEOMETRY_TYPES = ['POINT', 'LINESTRING', 'POLYGON'];
我还需要在mysql数据库中将其存储为点类型,而不是字符串,以利用地理空间索引。这种技术是将其存储为sql中的本机点,还是toJSON只是以我希望的方式在输出中呈现该点?不这样认为,我建议您在Sequelize repo上添加一个问题作为功能请求,或者创建一个PR来支持这种数据类型看起来已经有一个pull请求了