select
select : {} 이렇게 넣어 놓거나)select를 정의하지 않으면, 모든 프로퍼티들을 다 가져온다.@Get('users')
getUsers() {
return this.userRepository.find({
select: {},
});
}
select를 정의하면, 정의한 프로퍼티만 가져온다.
select : { id : true } ⇒ id 프로퍼티만 가져옴 ⇒ 가져온 데이터에는 id만 포함되어져 있음.select : { id : true, createdAt : true } ⇒ id, createdAt 프로퍼티 만 가져옴 ⇒ 가져온 데이터에는 id, createdAt만 포함되어져 있음.<aside> 🤔
뭔가 useQuery의 select 옵션이랑 조금은 다른 것 같음. 오히려, where가 더 맞는것 같다.
</aside>
where
@Get('users')
getUsers() {
return this.userRepository.find({
where : { id : 1 },
});
}
and 조건으로 계속 추가할 수 있다. (아래 예시, id가 1이면서, version은 3인녀석)@Get('users')
getUsers() {
return this.userRepository.find({
where : { id : 1, version : 3 },
});
}
or 조건으로 하고 싶다면? (id가 1이거나,version이 3인녀석) 리스트(배열)로 전달한다.@Get('users')
getUsers() {
return this.userRepository.find({
where : [
{id : 3},
{version : 1}
],
});
}
relation
@Get('users')
getUsers() {
return this.userRepository.find({
relation : {
posts : true
}
});
}
select와 where 문에서도 relation된 데이터를 조합해서도 같이 쓸 수 있다.order
ASC : 오름차DESC : 내림차@Get('users')
getUsers() {
return this.userRepository.find({
order : {
id : ASC
}
});
}
user 테이블의 id 기준으로 오름차순으로 불러온다.skip
제외하고 가져올지??@Get('users')
getUsers() {
return this.userRepository.find({
skip : 1
});
}
take
@Get('users')
getUsers() {
return this.userRepository.find({
take : 2
});
}