【问题标题】:How to add a where clause dynamically to query which is generated using nestjs Query Builder?如何将 where 子句动态添加到使用 nestjs 查询生成器生成的查询中?
【发布时间】:2021-07-02 22:31:05
【问题描述】:

我正在开发一个 API,它的 UI 要求基于搜索字段的值,我将收到过滤后的结果。 UI上有很多搜索字段。

示例代码-

  async getRoomsByMember(active: boolean, email: string): Promise<any[]> {
      return await getRepository(Room)
      .createQueryBuilder('room')
      .innerJoinAndSelect('room.member', 'member')
      .where("room.active = :active", {active: active})
      .andWhere("member.email = :email", { email: email })
      .getMany();
  }

如果用户在过滤器字段(如会员电话号码、城市、州、国家和邮政编码)中输入值,我将能够动态过滤房间成员。

【问题讨论】:

    标签: node.js nestjs query-builder typeorm


    【解决方案1】:

    你快到了:-)

    你可以试试这样的:

    async getRoomsByMember(active: boolean, email: string): Promise<any[]> {
      const query = getRepository(Room)
        .createQueryBuilder('room')
        .innerJoinAndSelect('room.member', 'member')
        .where("room.active = :active", {active: active});
      // Keep adding your other fields like member phone number, city, state, country, and zip, like below
      if(email) {
        query.andWhere("member.email = :email", { email: email })
      }
      return query.getMany();
    }
    

    【讨论】:

      猜你喜欢
      • 2013-12-09
      • 1970-01-01
      • 1970-01-01
      • 2020-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-09
      相关资源
      最近更新 更多