在用户表中,我有一个名为
experience
的json列,其结构如下:[
{
"field": "devops",
"years": 9
},
{
"field": "backend dev",
"years": 7
}
... // could be N number of objects with different values
]
业务需求
客户可以请求具有任何领域经验且在每个领域拥有相应年限经验的人员。
以下是一个查询示例
SELECT * FROM users
WHERE
jsonb_path_exists(experience, '$[*] ? (@.field == "devops" && @.years > 5)') and
jsonb_path_exists(experience, '$[*] ? (@.field == "backend dev" && @.years > 5)')
LIMIT 3;
问题
假设我收到一个请求:
[
{ field: "devops", years: 5 },
{ field: "java", years: 6 },
{ field: "ui/ux", years: 2 }] // and so on
如何动态创建查询而不必担心 SQL 注入?
技术栈
- Nodejs
- Typescript
- TypeORM
- Postgres