You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在NestJS中从用户表获取同一User_ID的多条数据?

在NestJS中通过TypeORM查询同一User_ID对应的多条数据

你的需求是基于TypeORM实现查询同一User_ID匹配的多条用户数据,现有代码里的findOne方法仅能返回单条结果,只需新增一个使用findBy方法的查询函数即可实现多数据查询:

修改后的UsersService完整代码

import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { usertbl } from './usertbl.entity';

@Injectable()
export class UsersService {
  constructor(
    @InjectRepository(usertbl)
    private UsertblRepository: Repository<usertbl>,
  ) {}

  findAll(): Promise<usertbl[]> {
    return this.UsertblRepository.find();
  }

  findOne(User_ID: string): Promise<usertbl> {
    return this.UsertblRepository.findOneBy({ User_ID });
  }

  // 新增:查询同一User_ID的多条数据
  findByUserId(User_ID: string): Promise<usertbl[]> {
    return this.UsertblRepository.findBy({ User_ID });
  }

  createusertbl(Usertbl: usertbl): Promise<usertbl> {
    return this.UsertblRepository.save(Usertbl);
  }
}

关键说明

  • TypeORM的findBy方法会根据传入的条件返回所有匹配的实体数组,而findOneBy仅返回第一个匹配的实体(或null),正好满足你查询多条数据的需求。
  • 新增的findByUserId方法接收User_ID参数,返回类型为Promise<usertbl[]>,与findAll保持一致的数组返回格式。

控制器中调用示例(可选)

如果需要在控制器中对外提供这个查询接口,可以这样写:

import { Controller, Get, Param } from '@nestjs/common';
import { UsersService } from './users.service';
import { usertbl } from './usertbl.entity';

@Controller('users')
export class UsersController {
  constructor(private readonly usersService: UsersService) {}

  @Get(':userId')
  async getUsersByUserId(@Param('userId') userId: string): Promise<usertbl[]> {
    return this.usersService.findByUserId(userId);
  }
}

内容的提问来源于stack exchange,提问作者utsho hoque

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 05:10:39