1. where에서 배열 중 포함된 값 가져오기
followId라는 배열에 userId가 저장되어있고 배열 내 id에 해당하는 데이터를 모두 가져와야 하는 상황
처음에는 prisma.findMany를 배열을 순회하며 반복문을 돌려야되나 고민했는데, 너무 비효율적이라 다른 방법을 찾아봄.
where에서 in을 쓰면 된다...
const followPosts = await prisma.posts.findMany({
where: {
UserId: {
in: followId,
},
},
}
2. 데이터베이스를 read 할 때, 자식 데이터베이스에 부모와 연결된 개수 반환하기
LikePosts 데이터베이스가 Posts와 1:N 관계이고, 해당 post와 연관된 모든 LikePosts의 개수를 나타내고 싶은 상황
LikePosts를 따로 findMany로 불러와, 불러온 데이터 배열의 길이를 구하는 식으로 구현하였으나, _count를 쓰면 따로 read를 한번 더 하지 않아도 해결됨
const post = await prisma.posts.findMany({
where: {
group,
User: {
UserInfos: {
role: group,
},
},
},
select: {
_count: {
select: {
LikePosts: true,
},
},
},
orderBy: {
createdAt: 'desc',
},
});
이게 되네
'TIL' 카테고리의 다른 글
TIL 240610 - 계층형 아키텍처 패턴 (1) | 2024.06.10 |
---|---|
TIL 240607 - nodemailer (1) | 2024.06.07 |
TIL 240604 - multer 오류 및 어려웠던 점 해결 (0) | 2024.06.04 |
TIL 240603 - S3을 이용한 이미지 업로드 (0) | 2024.06.03 |
TIL 240531 - 알고리즘 코드카타 리뷰 - 햄버거 만들기 (2) | 2024.05.31 |