如何在 Sequelize 中使用 MySQL JSON 数据类型

Posted

技术标签:

【中文标题】如何在 Sequelize 中使用 MySQL JSON 数据类型【英文标题】:How to use MySQL JSON datatype with Sequelize 【发布时间】:2018-09-14 12:22:10 【问题描述】:

我正在尝试将 mysql 5.7 与 Sequelize 一起使用,并且我想使用我的 users 表上的 attributes 字段的 JSON 数据类型来跟踪用户属性,例如 home_phone、mobile_phone、work_phone、address 和每个用户可能拥有或不拥有的其他几个属性/设置。

我已经能够在此处找到执行选择的文档:http://docs.sequelizejs.com/manual/tutorial/querying.html#json。

我正在努力寻找有关如何执行创建、更新和删除的文档。

我想我总是可以只做一个原始查询,但是有没有后续的方法可以做到这一点?

更新 1

我正在专门寻找如何在 sequelize 中执行这样的查询:

update Users 
set user_attributes = JSON_SET(user_attributes, "$.phone", "5554443333") 
where id=7;

【问题讨论】:

【参考方案1】:

使用Sequelize.fn方法:

User.update(
  user_attributes: Sequelize.fn("JSON_SET", Sequelize.col('user_attributes'), "$.phone", "5554443333")
, 
  where: id: 7
)

【讨论】:

以上是关于如何在 Sequelize 中使用 MySQL JSON 数据类型的主要内容,如果未能解决你的问题,请参考以下文章

如何在 mysql Sequelize 实例中拥有数组的数据类型?

sequelize.js - 你需要手动安装 mysql 包

如何使用 sequelize 和 mysql 创建一对一的关系?

如何在 sequelize 标准 createdAt 字段中使用毫秒?

如何使用 Sequelize 和 mySql 选择外键列的名称?

在 MySQL 中使用 sequelize 自动递增 id