본문 바로가기
Database/Prisma

[Prisma] provider = "MongoDB" 일 때 모델의 id에 대해

by 위그든씨 2023. 8. 3.
id             String    @id @default(auto()) @map("_id") @db.ObjectId

1. id 는 이 필드의 문자열(String)타입의 필드 (기본키로 사용 될 것) 

2. @id: 이것은 Prisa 스키마에서 해당필드가 db의 기본 키로 사용됨을 지정하는 데코레이터

3. @default(auto()) : 이 데코레이터는 해당 필드가 새로운 레코드를 생성할 때, 자동으로 값을 생성하는 것을 의미함

4.@map("_id") : 이것은 prisma 스키마에서 해당 필드를 MongDB 내부에서 "_id"필드와 매핑하는 것을 의미함.

                       MongoDB는 기본적으로 "_id"라는 이름의 필드를 사용해서 각 문서를 고유하게 식별함

                       Prisma에서는 이 "_id" 필드를 "id"라는 이름으로 사용하고자 할 때 @map 데코레이터를 사용함

5. @db.ObjectId: 이 데코레이터는 Prisma와 MongoDB 간의 ObjectId를 사용하여 "_id"필드의 값을 

                          자동으로 생성하겠다는 것을 의미함.                          

                          ObjectId는 MongoDB에서 사용되는 12바이트의 고유한 식별자로, 각 문서의 고유성을 보장하는 데 사용됩니다.