过滤从查询参数传递的数组。 NestJS,TypeORM
Posted
技术标签:
【中文标题】过滤从查询参数传递的数组。 NestJS,TypeORM【英文标题】:Filter an array passed from query params. NestJS, TypeORM 【发布时间】:2021-03-15 02:36:46 【问题描述】:我用的是带有TypeORM的NestJS,数据库是mysql,我想过滤多个可以传入的参数。
前端有一个产品列表,过滤器用作发送到 NestJS 的查询参数,过滤适用于单个参数,例如 api.example.com?manufacturer=Acer,但我将如何过滤数组,例如 api.example.com ?manufacturer=宏碁、东芝、华硕。
我在 TypeORM 中尝试了很多东西,目前使用 QueryBuilder 使用 if 语句构建数组,如果过滤器存在,那么我正在执行类似 where 语句的操作。
.andWhere(manufacturer = filterOne, filterOne: *manufacturers from the query param*)
但是是的,只是不能一起破解一些东西,尝试了几件事,上面是一个粗略的例子,确实尝试了 TypeORM 作为过滤数组示例的方法,但似乎更多的是仅用于整数数组?无论如何,我对任何允许过滤我提供的示例的最终结果的方法持开放态度,再次欢呼并感谢!
【问题讨论】:
【参考方案1】:您必须使用IN
来获取制造商等于来自查询的数据的所有数据,首先,您必须将查询转换为数组:
var manufacturerParam = filterOne.split(",");
然后将其添加到您的查询中:
.andWhere(manufacturer IN (:filter)", filter: manufacturerParam )
【讨论】:
哦,干杯,伙计,我尝试了很多东西,不仅仅是一个例子,以前和你的例子很接近,但我一定错过了一些东西,试过你的例子,现在可以了,干杯百万冠军!!以上是关于过滤从查询参数传递的数组。 NestJS,TypeORM的主要内容,如果未能解决你的问题,请参考以下文章