포시코딩

3월20일 - Nest.js TypeORM get random row 본문

TIL

3월20일 - Nest.js TypeORM get random row

포시 2023. 3. 20. 13:06
728x90

개요

Nest.js에서 TypeORM으로 데이터 가져올 때 

랜덤으로 가져와야 하는 상황이 있어서

방법을 찾아보다 구글에 나와있는 방법들과는 좀 다르게 성공해서 기록

 

코드

const photos = await this.photoRepository.createQueryBuilder('p')
    .select([
      'p.id',
      'p.image'
    ])
    .orderBy('RAND()')
    .limit(5)
    .getMany();

내가 사용한 코드 예제다.

 

createQueryBuilder를 사용하면서

인터넷에 나와있는 방법과는 달리 orderBy()에서 'RANDOM()'이 아닌 'RAND()'를 써야 한다.

랜덤으로 5개를 가져오기 위해 limit(5)를 추가로 사용

 

데이터가 아무것도 없을 시 그냥 빈 array []를 반환한다.

728x90