gpt4 book ai didi

postgresql - 使用包含表中的 jsonb 数据类型对第一级查询的 where 子句进行后续处理

转载 作者:行者123 更新时间:2023-12-03 22:21:38 26 4
gpt4 key购买 nike

这就是我要查询的内容:

Table1.findAndCountAll({
include: [
model: Table2,
as: 'table2Alias'
attributes: ['metadata'] // --> metadata is jsonb type: { level: 'senior' }
],
where: {
[Op.or]: [
{ 'table2Alias.metadata.level': { [Op.iLike]: `%${queryText}%` } }
]
}
});

我从上面的代码中得到这个错误:

error: column Table1.table2Alias.metadata.level does not exist



谁能帮我这个?

最佳答案

一种方法是使用 Sequelize.where 和 Sequelize.literal 如下所示 - 它适用于 MySql 中的纯 JSON。您必须在 Postgres 中为 JSONB 使用一些不同的函数。

Table1.findAll({
include: [{model: Table2, as : 'whatever'}],
where :
Sequelize.where(Sequelize.literal('json_extract(metadata, \'$.level\')'),
{Op.like : '%senior%'})
})

关于postgresql - 使用包含表中的 jsonb 数据类型对第一级查询的 where 子句进行后续处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58487532/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com