Sequelize.js 如何在sequelize with 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

我正在使用sequelize ORM连接到MYSQL数据库-如何在表/对象模型中定义地理点?既然sequelize没有点数据类型,我可以只传入一个表示MYSQL类型的字符串吗

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请求了