我有一个存储对象数组的 db 列。一个示例值是:
[{
"recordId": 11,
"column": [{
"name": "some value",
"id": "1"
},
{
"name": "other value",
"id": "2"
}
]
}, {
"recordId": 12,
"column": [{
"name": "some value",
"id": "3"
},
{
"name": "other value",
"id": "4"
}
]
}]
现在,如果我想通过 sequelize 搜索具有
id:1
的记录,那么 where
子句中应该包含哪些内容,或者还有其他方法吗?
最佳答案
您正在寻找 json 数组至少有一个对象的行,该对象的 id
属性值为 1
。在纯 SQL 中,您可以将 exists
与取消嵌套数组的相关子查询一起使用:
select t.*
from mytable t
where exists (
select 1
from jsonb_array_elements(t.column) as x(obj)
where (x.obj ->> 'id')::int = 1
)
关于javascript - Sequelize/postgres : Get records matching a value inside an array of object with a provided value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62345734/