【问题标题】:Typeorm Like queryTypeorm Like 查询
【发布时间】:2020-04-26 15:17:55
【问题描述】:

typeorm 的like 查询不起作用。 这是我尝试在电子邮件中按关键字搜索的代码

async findAll(findAllQuery: FindAllQuery): Promise<any> {
    const [users, total] = await this.usersRepository.findAndCount(
      {
        where: {
          email: Like(`%${findAllQuery.keyword}%`),
        },
        skip: findAllQuery.page - 1,
        take: findAllQuery.itemsPerPage,
      },
    );
    return { users, total };
  }

有什么想法可以完成这项工作吗?

【问题讨论】:

    标签: node.js search typeorm


    【解决方案1】:

    我终于做到了避免Like,似乎我误解了Like的含义,我只想按关键字在用户中搜索,所以我做了这样的事情,它成功了。

    async findAll(findAllQuery: FindAllQuery): Promise<any> {
        const options: FindManyOptions<User> = {};
    
        if(findAllQuery.keyword){
          options.where = {
    
            $or:[
              {email: RegExp(`^${findAllQuery.keyword}`,'i')},
              {firstName: RegExp(`^${findAllQuery.keyword}`,'i')},
              {lastName: RegExp(`^${findAllQuery.keyword}`,'i')},
              {username: RegExp(`^${findAllQuery.keyword}`,'i')},
            ],
          }
        }
    
        if(findAllQuery.page){
          options.skip = findAllQuery.page - 1;
        }
    
        if(findAllQuery.itemsPerPage){
          options.take = findAllQuery.itemsPerPage;
        }
    
        const [users, total] = await this.usersRepository.findAndCount(options);
        return { users, total };
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      • 2020-11-01
      • 2021-01-29
      • 2020-07-27
      • 2021-02-20
      • 2010-11-26
      • 1970-01-01
      相关资源
      最近更新 更多