Docs Menu
Docs Home
/ / /
Node.js 드라이버

튜토리얼: Prisma 와 통합

Prisma 는 Node.js용 오픈 소스 객체 관계형 매퍼(ORM)입니다. JavaScript 와 TypeScript를 모두 지원하지만 주로 TypeScript와 함께 사용되어 읽기 쉽고 형식이 안전한 코드를 쓰기 (write) 도움이 됩니다.

스키마는 개발자가 컬렉션 문서의 구조를 정의하여 시간 경과에 따른 데이터 불일치 문제를 방지하는 데 도움이 됩니다. MongoDB 내에서 데이터베이스 수준에서 스키마 정의할 수 있지만, Prisma 사용하면 애플리케이션 수준에서 스키마 정의할 수 있습니다. Prisma Client는 스키마 를 인식하기 때문에 Prisma Client를 사용하는 개발자는 자동 완성 쿼리에 액세스 할 수 있습니다.

일반적으로 함께 액세스하는 데이터는 MongoDB 컬렉션 에 함께 저장되어야 합니다. Prisma 내장된 문서를 사용하여 데이터를 함께 보관할 수 있도록 지원합니다. 관련 데이터를 별도의 MongoDB 컬렉션에 저장 해야 하는 사용 사례에서는 한 문서의 _id 필드 다른 문서 에 포함해야 합니다. Prisma 이 프로세스 간소화하고 관련 데이터를 구성하는 데 도움을 주는 동시에 데이터의 참조 무결성을 유지합니다.

MongoDB 의 효율적인 데이터 모델링에 대해 자세히 학습 MongoDB Server 매뉴얼에서 $lookup 작업 줄이기를 참조하세요.

이 튜토리얼에서는 다음 조치를 수행하는 방법을 보여줍니다.

  • 예시 Prisma 애플리케이션 다운로드

  • Prisma 스키마 구성

  • 샘플 데이터로 MongoDB database 생성 및 채우기

  • 예시 애플리케이션 MongoDB 와 호환되도록 만들기

  • 애플리케이션을 실행합니다.

1

이 튜토리얼을 시작하기 전에 다음 구성 요소가 준비되어 있는지 확인하십시오.

2

Prisma 예제 리포지토리 에서 예시 애플리케이션복제하거나 다운로드 .

이 예시 SQLite 데이터베이스 사용하는 간단한 블로그 콘텐츠 관리 플랫폼 입니다. 다음 단계에서는 SQLite 대신 MongoDB 사용하도록 애플리케이션 수정합니다.

3

예시 애플리케이션 디렉토리 에서 prisma/schema.prisma 파일 로 이동합니다. 이 파일 의 datasource db 객체 에서 provider 필드 "mongodb" 로 설정하다 하고 url 필드 Atlas 연결 URI로 설정합니다.

동일한 파일 의 User 모델에서 id 필드 유형을 Int 에서 String 로 변경하고 기본값 을 auto()로 설정하다 . id 속성 MongoDB _id 필드 에 매핑되어야 합니다. 또한 이 속성 의 데이터 유형 ObjectId로 설정하다 하도록 Prisma 에 지시해야 합니다.

Post 모델에서는 User 모델에서와 동일한 방식으로 id 필드 변경합니다. 또한 authorId 필드 유형을 Int 에서 String 로 변경하고 데이터 유형 ObjectId로 설정하다 해야 합니다.

schema.prisma 파일 은 다음과 유사해야 합니다.

generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "mongodb"
url = "<your connection URI>"
}
model Post {
id String @id @default(auto()) @map("_id") @db.ObjectId
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
title String
content String?
published Boolean @default(false)
viewCount Int @default(0)
author User @relation(fields: [authorId], references: [id])
authorId String @db.ObjectId
}
model User {
id String @id @default(auto()) @map("_id") @db.ObjectId
email String @unique
name String?
posts Post[]
}

이 스키마 MongoDB database 에서 별도의 UserPost 컬렉션을 정의하며, 각 Post 에는 User에 대한 참조가 포함되어 있습니다.

이러한 변경을 수행한 후에는 터미널에서 프로젝트 디렉토리 로 이동하여 다음 명령을 실행 필요한 종속성을 설치하고 스키마 생성합니다.

npm install
npx prisma generate

참고

스키마 를 추가로 변경하는 경우 변경 사항을 적용하려면 npx prisma generate 명령을 다시 실행해야 합니다.

4

데이터베이스 샘플 데이터로 채우려면 다음 명령을 실행 예시 프로젝트 에서 prisma/seed.ts 파일 실행 .

npx prisma db seed

이렇게 하면 schema.prisma 파일 에 정의된 대로 UserPost 컬렉션이 생성되고 샘플 데이터로 채워집니다.

5

예시 프로젝트 의 src 디렉토리 로 이동합니다. pages/api/post/[id].tspages/api/publish/[id].ts 파일에서 Number(postId) 의 모든 인스턴스를 postId로 바꿉니다. 이는 스키마 의 id 필드가 이제 Int 대신 String 유형이기 때문에 필요합니다.

6

애플리케이션 시작하려면 프로젝트 디렉토리 에서 다음 명령을 실행 .

npm run dev

웹 브라우저에서 http://localhost:3000 로 이동하여 애플리케이션 보고 실행 . 이 애플리케이션 사용하여 블로그 게시물을 만들고, 초안을 작성하고, 게시하고, 삭제 . 예시 프로젝트 의 pages/api 폴더에서 API 경로 정의를 참조할 수 있습니다.

Prisma 에 대해 자세히 학습 Prisma 설명서를 참조하세요.

이 튜토리얼에서 애플리케이션 의 전체 버전을 보고 다운로드 하려면 prisma-mongodb-nextjs-example GitHub 리포지토리 참조하세요.

돌아가기

Mongoose 시작하기

이 페이지의 내용