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
});
}