prisma-database-setup-mongodb

作者: prisma

MongoDB 設定。使用此 Prisma 功能時的參考。

npx skills add https://github.com/prisma/cursor-plugin --skill prisma-database-setup-mongodb

MongoDB Setup

⚠️ WARNING: MongoDB is NOT supported in Prisma ORM v7.

Support for MongoDB is planned for a future v7 release. If you need MongoDB, you must use Prisma ORM v6.

Prerequisites

  • MongoDB 4.2+
  • Replica Set configured (required for transactions)
  • Prisma ORM v6.x

1. Schema Configuration (v6)

In prisma/schema.prisma:

datasource db {
  provider = "mongodb"
  url      = env("DATABASE_URL")
}

generator client {
  provider = "prisma-client-js"
}

ID Field Requirement

MongoDB models must have a mapped _id field using @id and @map("_id"), usually of type String with auto() and db.ObjectId.

model User {
  id    String @id @default(auto()) @map("_id") @db.ObjectId
  email String @unique
  name  String?
}

Relations

Relations in MongoDB expect IDs to be db.ObjectId type.

model Post {
  id       String @id @default(auto()) @map("_id") @db.ObjectId
  author   User   @relation(fields: [authorId], references: [id])
  authorId String @db.ObjectId
}

2. Environment Variable

In .env:

DATABASE_URL="mongodb+srv://user:password@cluster.mongodb.net/mydb?retryWrites=true&w=majority"

Migrations vs Introspection

  • No Migrations: MongoDB is schema-less. prisma migrate commands do not work.
  • db push: Use prisma db push to sync indexes and constraints.
  • db pull: Use prisma db pull to generate schema from existing data (sampling).

Common Issues

"Transactions not supported"

Ensure your MongoDB instance is a Replica Set. Standalone instances do not support transactions. Atlas clusters are replica sets by default.

"Invalid ObjectID"

Ensure fields referencing IDs are decorated with @db.ObjectId if the target is an ObjectID.

來自 prisma 的更多技能

prisma-cli-migrate-reset
prisma
prisma migrate reset
official
prisma-cli-validate
prisma
prisma validate。使用此 Prisma 功能時的參考。
official
prisma-next-extension-upgrade
prisma
Upgrade Prisma Next in your extension. Bumps every `@prisma-next/*` dependency to the requested target (or npm `latest`), runs the per-transition upgrade…
official
adr-review
prisma
以全新的視角(如同沒有先前背景的團隊成員)審查一或多個 ADR,找出敘事與結構上的問題,然後重新撰寫。適用於當…
official
prisma-next-upgrade
prisma
Upgrade Prisma Next in your app. Bumps every `@prisma-next/*` dependency from the version pinned in the lockfile to the requested target (or npm `latest`),…
official
prisma-cli
prisma
Prisma CLI 指令、選項及工作流程的完整參考,涵蓋設定、遷移與資料庫操作。包含 20 多個按優先順序組織的指令:設定(init)、生成(generate)、開發(dev)、資料庫操作(db pull/push/seed/execute)以及遷移(migrate dev/deploy/reset/status/diff/resolve)。包含 Prisma 7.x 的變更:新的 prisma.config.ts 設定檔、已移除的旗標(--skip-generate、--skip-seed、--schema、--url)以及明確...
official
prisma-client-api
prisma
完整的 Prisma Client API 參考,涵蓋模型查詢、CRUD 操作、過濾、關聯與事務。包含 17 種模型查詢方法,如 findUnique、findMany、create、update、delete、upsert 及批量操作與回傳變體。提供查詢選項以塑造結果:select、include、omit、orderBy、take、skip、cursor 與 distinct。包含標量與邏輯過濾運算子(equals、in、contains、startsWith、lt、gt)以及關聯過濾(some、...)
official
prisma-compute
prisma
Prisma Compute deployment and hosting guide. Use whenever the user mentions Prisma Compute, `prisma.compute.ts`, `defineComputeConfig`, deploying or hosting a Prisma app, `@prisma/cli app deploy`, `compute:deploy`, `create-prisma --deploy`, `PRISMA_SERVICE_TOKEN`, `auth workspace`, Compute apps/deployments/build logs/domains, `@prisma/cli agent install`, localhost vs `0.0.0.0`, deploy port binding, or framework deploy readiness for Hono, Elysia, Next.js, TanStack Start, Astro, Nuxt, Svelte,...
developmentdevopsofficial