postgresql 如何查询postgres jsonb字段?

lyr7nygr  于 2023-01-05  发布在  PostgreSQL
关注(0)|答案(1)|浏览(243)
[
    {
        "id": 397221,
        "user": {
            "id": "004e6cfc",
            "name": "foo",
            "image": null,
            "userId": 18856,
            "userModel": "nurse"
        },
        "unreadCount": 0
    },
    {
        "id": 397220,
        "user": {
            "id": "9752cef3",
            "name": "michy",
            "image": null,
            "userId": 649,
            "userModel": "facility"
        },
        "unreadCount": 0
    }
]

上面的数据是一个用户表的成员列上的数据,如何用sequelize查询userId=649,或者sequelize的Postgresql原始查询不起作用?
这是一个Postgres数据库。

nwlqm0z1

nwlqm0z11#

对于JSONB中1层对象中的简单值相等,您可以将query编写为

await db.User.findAll({
  where: {
    user: {   // column name
      userId: 649   // key name within the JSONB column
    }
  }
})

如果您有更复杂的JSONB(如数组或复杂过滤条件),则可在PostgreSQL中选中对JsonB数组执行Sequelize ORM查询

相关问题