【问题标题】:How to query JSON data from an object in sequelize?如何从 sequelize 中的对象中查询 JSON 数据?
【发布时间】:2022-11-10 08:10:20
【问题描述】:

我是 sequelize 的新手,所以我想问一下如何从 JSON 中查询一些特定的数据,有问题的 JSON 在一个对象中。假设我有这个数据结构:

{ id: INTEGER, name: json, email: STRING}
{ id: 1, name : { "first": "foo", "last": "bar"}, email: blabla@gmail.com}

并且只想从所有数据中检索 id 和“last”,如下所示:

{{id: 1, name: {"last": "baz"}, {id: 2, name: {"last": "doe"}}

我怎么能用续集家伙做到这一点?我真的迷路了。顺便说一下,我使用 postgres 作为数据库。谢谢。

【问题讨论】:

  • 看来您需要在attributes 选项中使用Sequelize.fn 来使用PostgreSQL JSON 函数
  • 感谢您的回复,您能再解释一下吗?
  • 我可以在答案中展示一种方法,但我不知道你需要使用哪些确切的函数来重建只有一个字段的 JSON 对象,你需要查看你的 PostgreSQL 版本支持的所有 JSON 函数。,
  • 我已经在文档上搜索,但我无法找出解决方案,JSONB 上的文档非常有限。但是我你的方法有一些链接,这会很好
  • 您使用什么版本的 PostgreSQL?

标签: postgresql express sequelize.js


【解决方案1】:

您可以将attributes 选项与sequelize.json 一起使用

const payload = await sequelize.<modelname>.findAll({
               attributes: ['id',
                           [sequelize.json('name.last'), 'last']]
    });

这意味着: select id, name-&gt;&gt;'last' as last from ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    • 2019-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多