筛选从查询参数传递的数组.NestJS,TypeORM



我使用的是带有TypeORM的NestJS,数据库是MySQL,我想过滤多个可以传入的参数。

前端有一个产品列表,过滤器作为发送到NestJS的查询参数应用,过滤适用于单个参数,例如api.example.com?manufacturer=Acer,但我该如何过滤Array(如api.example.com(?制造商=宏碁、东芝、华硕。

我在TypeORM中尝试了很多事情,目前使用QueryBuilder来构建带有if语句的数组,如果过滤器存在,那么我正在做一些类似where语句的事情。

.andWhere(manufacturer = filterOne, {filterOne: *manufacturers from the query param*})

但是,是的,就是不能把一些东西拼凑在一起,尝试了几件事,上面是一个粗略的例子,是否尝试了TypeORM的方法作为过滤数组的例子,但它似乎只适用于整数数组?无论如何,我对任何允许过滤我提供的示例的最终结果的方法都持开放态度,再次欢呼和感谢!

您必须使用IN来获取制造商等于来自查询的数据的所有数据,首先,您必须将查询转换为数组:

var manufacturerParam = filterOne.split(",");

然后将其添加到您的查询中:

.andWhere(manufacturer IN (:filter)", { filter: manufacturerParam  }) 

最新更新