← voltar para o feed
Prisma7 min de leitura

Por que usei Prisma com MongoDB (e os problemas que encontrei)

Tipagem forte no Mongo parece sonho, mas tem preços. Uma análise honesta depois de 8 meses usando Prisma em produção.

#prisma#mongodb#typescript

Spoiler: eu recomendo. Mas com ressalvas.

O que o Prisma acerta

Tipagem ponta a ponta é viciante. Quando seu schema.prisma dita os tipos do backend até o front, bugs de forma de dado basicamente somem.

model Product {
  id       String   @id @default(auto()) @map("_id") @db.ObjectId
  sku      String   @unique
  name     String
  variants Variant[]
}

Onde ele dói no Mongo

  • Transações multi-documento exigem replica set. Localmente isso é chato.
  • Agregações complexas não têm API do Prisma. Você cai para $runCommandRaw e perde tipagem.
  • Mudanças de schema sem migrations: você precisa de uma estratégia própria de versionamento de documento.

Minha regra prática

Uso Prisma para 95% das queries CRUD, e deixo um serviço paralelo com o driver oficial para agregações pesadas (relatórios, saldo de estoque, dashboards).

// Prisma para o caminho feliz
const product = await prisma.product.findUnique({ where: { sku } });

// Driver nativo para o que o Prisma não cobre bem
const balance = await db.collection("movements").aggregate([...]).toArray();

Não existe bala de prata. Existe bala certa para o alvo certo.

Gostou do post?

Compartilha com alguém que tá resolvendo o mesmo problema.