使用Sequelize从价值中获取Json

时间:2017-08-03 10:35:53

标签: sequelize.js

我必须从1 col获取值,该col目前将JSON存储为TEXT:

  

col1:{“class”:{“count”:3,“number”:25}}

所以当我使用sequlize orm选项时:

..attributes: ['id', 'col1']..

它返回值:

"{\"class\":{\"count\":3,\"number\":25}}"

我如何使用以下内容:

..attributes: ['id', sequelize.json('col1')]..

以JSON格式获取数据? 感谢

2 个答案:

答案 0 :(得分:0)

我不了解sequelize.json ...

您可以在列上使用JSON.parse和getter。

 sequelize.define('your_table', {
   col1: {
     type: DataTypes.TEXT,
     get(val) { return JSON.parse(val) }
   }
 })

但Postgres(我认为MySQL,虽然我不会在续集文档中看到它)有JSON字段类型。他们会好得多。您可以在任意嵌套时通过键和值进行查询。您还可以创建索引。同样,它们可能只适用于Postgres。

 sequelize.define('your_table', {
   col1: {
     type: DataTypes.JSONB,
   }
 })

答案 1 :(得分:0)

我猜你需要在数据库中进行查询查询时设置{raw: true}。这将返回json对象