1. distinct - 중복 제거
const uniquePostTitles = await prisma.post.findMany({
distinct: ['title'],
});
distinct에 중복 제거를 적용하고싶은 컬럼명을 작성하면 된다.
[
{
Id: 1,
title: 'abc',
},
{
Id: 2,
title: 'efg',
},
{
Id: 3,
title: 'abc',
},
{
Id: 4,
title: 'efg',
},
]
위와 같은 데이터에 사용할 경우
[
{
Id: 1,
title: 'abc',
},
{
Id: 2,
title: 'efg',
}
]
이처럼 중복된 필드값을 가지고 있는 데이터들은 그 중 더 낮은 id값을 가지고 있는 데이터 한개만 표시된다.
2. cursor - 리스트를 특정 위치부터 불러오기 (페이지네이션)
// 클라이언트에서 이후 페이지 요청이 왔을 때
const PAGE_SIZE = 10;
const lastPostId = ...; // 이전 페이지의 마지막 게시물의 id
const nextPage = await prisma.post.findMany({
take: PAGE_SIZE,
cursor: {
id: lastPostId,
},
});
한 페이지에에 게시글을 10개씩 보여주는 로직을 작성하기로 했다면
한 페이지당 가져올 게시글의 갯수를 지정해주고 (take : 다음 순서에서 설명하겠음)
cursor에 이전 페이지의 마지막 게시글 Id를 입력해 그 이후 10개의 게시글을 가져올 수 있도록 해준다.
3. take - 반환할 데이터의 갯수를 지정
const users = await prisma.user.findMany({
take: 5,
});
처음 다섯개의 데이터만 불러오기
const users = await prisma.user.findMany({
take: -5,
});
뒤에서 부터 다섯개의 데이터만 불러오기
참고: Prisma ORM 공식문서
https://www.prisma.io/docs/reference/api-reference/prisma-client-reference
'개발 > PrismaORM' 카테고리의 다른 글
언젠가 사용하게 될 Prisma ORM 옵션 종류 및 설명 (3) (0) | 2023.08.02 |
---|---|
언젠가 사용하게 될 Prisma ORM 옵션 종류 및 설명 (2) (0) | 2023.08.01 |
Prisma Transaction이란?, $transaction 사용 방법 (0) | 2023.06.01 |
prisma db 연동 명령어 (0) | 2023.04.10 |
Prisma에서 제공하는 테이블 조회 인자 타입 (0) | 2023.04.07 |