Mongoose (MongoDB) → Prisma + MongoDB
mediumPrisma 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