mongoose/typegoose vs prisma
typescript로 몽고디비 사용할 때 뭐가 더 좋을까?
조금 해 보고 금방 결정
선언 비교
typegoose
export class FileSchema extends TimeStamps {
@prop({ type: () => String, required: true })
public accountId!: string
@prop({ type: () => String, required: true })
public path!: string
@prop({ type: () => String, required: true })
public name!: string
}
prisma
model FileModel {
id String @id @default(auto()) @map("_id") @db.ObjectId
accountId String
path String
name String
}
mongoose
는 고려 대상도 아니다. 선언이 너무 길다.
장단점
typegoose
result가 type으로 매핑이 된다?
prisma
도 된다. node가 duck typing이 되니까 그냥 interface만들어놓고 변환해버리면 된다.
?될것같다.
typegoose도 별반 다르지 않을 듯 하고
선택
prisma
-
요즘 대세라 레퍼런스가 많다
-
선언이 간단하다
typegoose, mongoose 쓰는건 시간낭비인 것 같다.
prisma에서 쿼리성능이슈가 조금 있다는 것 같은데 오픈소스도 돈 싸움이라 돈이 몰리는 쪽이 결국 성능도 더 좋아진다.
그리고 몽고디비는 구조상 그 쿼리이슈 상관없을 것 같다.