Skip to content
Home / Migrations / Mongoose (MongoDB)Prisma + MongoDB

Mongoose (MongoDB) Prisma + MongoDB

medium

Prisma supports MongoDB (preview → stable). You get type-safe queries, migrations-lite via schema push, and a unified ORM if you ever switch to PostgreSQL.

Estimated: 6-14h · 6 steps
Progress0%
Step 1: Install Prisma
npm install prisma @prisma/client && npx prisma init --datasource-provider mongodb && npm uninstall mongoose
Step 2: Define Prisma schema

Translate Mongoose schemas to Prisma models. Mongoose ObjectId → @id @map("_id") @db.ObjectId in Prisma.

model User {
  id    String @id @default(auto()) @map("_id") @db.ObjectId
  email String @unique
  name  String?
}
Step 3: Push schema to MongoDB
npx prisma db push
Step 4: Replace Mongoose queries

Model.find({}) → prisma.model.findMany({}). Model.findById(id) → prisma.model.findUnique({ where: { id } }). Save → create/update/upsert.

Step 5: Replace Mongoose middleware

Mongoose pre/post hooks → Prisma middleware or $extends for cross-cutting logic.

const prisma = new PrismaClient().$extends({ query: { user: { create: async ({ args, query }) => { /* hook */ return query(args) } } } })
Step 6: Generate client
npx prisma generate
All queries typed, no Mongoose imports remain