개요
Prisma 는 Node.js용 오픈 소스 객체 관계형 매퍼(ORM)입니다. JavaScript 와 TypeScript를 모두 지원하지만 주로 TypeScript와 함께 사용되어 읽기 쉽고 형식이 안전한 코드를 쓰기 (write) 도움이 됩니다.
Schemas
스키마는 개발자가 컬렉션 문서의 구조를 정의하여 시간 경과에 따른 데이터 불일치 문제를 방지하는 데 도움이 됩니다. MongoDB 내에서 데이터베이스 수준에서 스키마 정의할 수 있지만, Prisma 사용하면 애플리케이션 수준에서 스키마 정의할 수 있습니다. Prisma Client는 스키마 를 인식하기 때문에 Prisma Client를 사용하는 개발자는 자동 완성 쿼리에 액세스 할 수 있습니다.
데이터 모델링
일반적으로 함께 액세스하는 데이터는 MongoDB 컬렉션 에 함께 저장되어야 합니다. Prisma 내장된 문서를 사용하여 데이터를 함께 보관할 수 있도록 지원합니다. 관련 데이터를 별도의 MongoDB 컬렉션에 저장 해야 하는 사용 사례에서는 한 문서의 _id
필드 다른 문서 에 포함해야 합니다. Prisma 이 프로세스 간소화하고 관련 데이터를 구성하는 데 도움을 주는 동시에 데이터의 참조 무결성을 유지합니다.
MongoDB 의 효율적인 데이터 모델링에 대해 자세히 학습 MongoDB Server 매뉴얼에서 $lookup 작업 줄이기를 참조하세요.
튜토리얼
이 튜토리얼에서는 다음 조치를 수행하는 방법을 보여줍니다.
예시 Prisma 애플리케이션 다운로드
Prisma 스키마 구성
샘플 데이터로 MongoDB database 생성 및 채우기
예시 애플리케이션 MongoDB 와 호환되도록 만들기
애플리케이션을 실행합니다.
전제 조건 확인
이 튜토리얼을 시작하기 전에 다음 구성 요소가 준비되어 있는지 확인하십시오.
클러스터 구성된 MongoDB Atlas 계정. 지침을 보려면 Atlas 시작하기 가이드 참조하세요.
Node.js v16.20.1 또는 그 이후 버전.
Prisma 스키마 구성
예시 애플리케이션 디렉토리 에서 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 (auto()) ("_id") .ObjectId createdAt DateTime (now()) updatedAt DateTime title String content String? published Boolean (false) viewCount Int (0) author User (fields: [authorId], references: [id]) authorId String .ObjectId } model User { id String (auto()) ("_id") .ObjectId email String name String? posts Post[] }
이 스키마 MongoDB database 에서 별도의 User
및 Post
컬렉션을 정의하며, 각 Post
에는 User
에 대한 참조가 포함되어 있습니다.
이러한 변경을 수행한 후에는 터미널에서 프로젝트 디렉토리 로 이동하여 다음 명령을 실행 필요한 종속성을 설치하고 스키마 생성합니다.
npm install npx prisma generate
참고
스키마 를 추가로 변경하는 경우 변경 사항을 적용하려면 npx prisma generate
명령을 다시 실행해야 합니다.
추가 리소스
Prisma 에 대해 자세히 학습 Prisma 설명서를 참조하세요.
이 튜토리얼에서 애플리케이션 의 전체 버전을 보고 다운로드 하려면 prisma-mongodb-nextjs-example GitHub 리포지토리 참조하세요.