在 JSON 字段中查找序列

Evg*_*kiy 15 javascript postgresql json sequelize.js

我有 PostgreSQL 数据库,其 JSON 类型字段名为“data”,其内容结构如下:

{
  "requestData" : {
    "url": "some url"
    "body": {
      "page_id": 12
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用 SequelizefindAll使用过滤器发出查询请求page_id,但没有得到一些结果。

问题是:我可以按 JSON 类型的嵌套字段进行搜索,还是仅按 JSONB 类型进行搜索?如何?

Mah*_*hdi 19

根据链接,您可以通过 3 种方式找到答案:

嵌套键

{
  "meta.audio.length": {
    [Op.gt]: 20
  }
}
Run Code Online (Sandbox Code Playgroud)

嵌套对象

{
  meta: {
    video: {
      url: {
        [Op.ne]: null
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

遏制

{
  "meta": {
    [Op.contains]: {
      site: {
        url: 'http://google.com'
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 提供的 Sequelize 文档链接不起作用,这是更新的链接:https://sequelize.org/master/manual/other-data-types.html#jsonb--postgresql-only- (2认同)