PostgreSQL JSONB列的Sequelize查询转SQL语句技术咨询
对应的PostgreSQL SQL语句转换结果
没问题,结合你给出的示例逻辑,针对MyTable.findAll({ where: { 'userData.Gender':{ $eq: 'M', } } })这个Sequelize查询,生成的PostgreSQL SQL语句应该是这样的:
SELECT "id", "uuid", "device_id", "version", "userData", "createdAt", "updatedAt" FROM "MyTable" AS "MyTable" WHERE ("MyTable"."userData"#>>'{Gender}') = 'M';
简单解释下和之前Age查询的区别:
- 因为
Gender是字符串类型,不需要像数字类型的Age那样做CAST(... AS DOUBLE PRECISION)类型转换,直接用#>>操作符提取JSONB字段的字符串值后,和目标字符串'M'做相等判断即可。 - 路径部分从
{Age,$lte}变成了{Gender},因为这里是直接匹配字段值,不需要额外的操作符后缀。
内容的提问来源于stack exchange,提问作者shavik
相关产品推荐
相关产品推荐

