Nodejs Sequelize Postgres



我的目标是在JSONB中找到id。我正在使用DataTypes.JSONB.

我的数据看起来像:

{"id": ["8a20b9c0-d3c5-11ea-895e-8757d6b9cab5", "8a1f3320-d3c5-11ea-895e-8757d6b9cab5", "8a226770-d3c5-11ea-895e-8757d6b9cab5"]}

我正在使用但未工作的查询:

Product.findAll({
where:{  
'sub_category_ids.id': {
[Op.contains]: '["'+req.params.subcategoryId+'"]'
}

原始查询看起来像但不工作:

SELECT * 
FROM "Products" AS "Product" 
WHERE ("Product"."sub_category_ids"#>>'{id}') @> '["8a1f3320-d3c5-11ea-895e-8757d6b9cab5"]' 
ORDER BY "Product"."createdAt" DESC;

我没有得到任何结果。但当我使用这个查询时,它是有效的:

SELECT * 
FROM "Products" AS "Product" 
WHERE ("Product"."sub_category_ids"->'id') @> '["8a20b9c0-d3c5-11ea-895e-8757d6b9cab5"]';

我做错了什么?或者怎么解决?

试试这个

Product.findAll({
where:{  
sub_category_ids: {
id:{
[Op.contains]: '["'+req.params.subcategoryId+'"]'
} 
}
}
})

最新更新