prisma는 ORM으로, 객체를 schema로 정의한다음 그 객체와 내가 선택한 데이터 베이스를 연결시켜주는 매개체이다.
server side쪽에서 데이터 베이스를 CRUD가능하도록 해준다.
include 옵션은 쿼리 응답에 join되는 테이블의 일부 필드를 포함해줄 수 있게 함
select를 중첩해서 relation field의 특정 값을 가져올 수 있게 함
가령 include문을 사용해 특정한 field를 join할 수 있음
const user = await prisma.user.findFirst({
include: {
posts: true,
},
})
const user = await prisma.user.findFirst({
include: {
posts: {
include: {
categories: true,
},
},
},
})
const user = await prisma.user.findFirst({
select: {
name: true,
posts: {
select: {
title: true,
},
},
},
})
const user = await prisma.user.findFirst({
include: {
posts: {
select: {
title: true,
},
},
},
})
// Invalid `prisma.user.findUnique()` invocation:
const user = await prisma.user.findFirst({
select: { // 같은 level에서 select, include 중복
email: true
}
include: { // 같은 level에서 select, include 중복
posts: {
select: {
title: true
}
}
},
})
// 아래와 같이 쿼리를 수정해야함
const user = await prisma.user.findFirst({
select: {
// This will work!
email: true,
posts: {
select: {
title: true,
},
},
},
})