如何在 mysql Sequelize 实例中拥有数组的数据类型?
Posted
技术标签:
【中文标题】如何在 mysql Sequelize 实例中拥有数组的数据类型?【英文标题】:How can I have a datatype of array in mysql Sequelize instance? 【发布时间】:2017-06-11 04:14:07 【问题描述】:我正在构建一个使用 Node/Express 和 mysql 以及 Sequelize 作为 ORM 的应用程序。我想要一个 Array 的数据类型,但 sequelize 文档说这仅限于 postgres。
基本上,如果我有一个包含 3 列的用户表(例如,姓名、电话、favColors),我希望 favColors 填充从用户检索到的字符串值数组。我该怎么做?
【问题讨论】:
您必须序列化您的数组并存储为字符串。 谢谢@Adam,我打算将数据存储为字符串,然后再拆分值,但我认为可能有一种不那么老套的方法。 【参考方案1】:您可以为此使用 getter/setter 函数:
favColors:
type: Sequelize.STRING,
allowNull: false,
get()
return this.getDataValue('favColors').split(';')
,
set(val)
this.setDataValue('favColors',val.join(';'));
,
更多信息:https://sequelize.org/master/manual/getters-setters-virtuals.html
【讨论】:
【参考方案2】:您可以将您的字段定义为json
:
type: Sequelize.JSON
然后将数据保存为array
【讨论】:
我想实现这个想法,但 vsCode 的智能感知建议它只适用于 postgreSQL。所以我什至没有尝试过 是的,有些数据类型只适用于某些类型的数据库。你可以阅读这个doc,看看你是否可以使用特定的数据类型。以上是关于如何在 mysql Sequelize 实例中拥有数组的数据类型?的主要内容,如果未能解决你的问题,请参考以下文章
如何连接nodejs sequelize aws rds mysql数据库和ec2实例
使用 sequelize 在 mySql 中定义静态函数(如在 mongoose 中)