# Create a new app with MongoDB (/docs/prisma-orm/quickstart/mongodb) > For the complete Prisma documentation index, see [llms.txt](https://www.prisma.io/docs/llms.txt). A markdown version of any docs page is available by appending `.md` to its URL. Create a new Prisma ORM project with MongoDB using create-prisma@latest. Location: Prisma ORM > Quickstart > Create a new app with MongoDB This page uses MongoDB. [Use PostgreSQL instead](https://www.prisma.io/docs/prisma-orm/quickstart/postgresql). Create a Prisma ORM app with MongoDB, apply the first migration, and run your first query against seeded data. > [!NOTE] > Using Prisma ORM 7? > > Prisma ORM 8 is the current release, as a release candidate. Prisma ORM 7 remains fully supported; its docs live at [/orm/v7](https://www.prisma.io/docs/orm/v7) and its setup paths at [/v7/getting-started](https://www.prisma.io/docs/v7/getting-started). > > For what release candidate means, when the final release is expected, and how to stay on version 7, see [Release status](https://www.prisma.io/docs/orm/release-status). ## Quick start [#quick-start] #### bun ```bash bun create prisma@latest --provider mongodb --no-deploy ``` #### pnpm ```bash pnpm create prisma@latest --provider mongodb --no-deploy ``` #### yarn ```bash yarn create prisma@latest --provider mongodb --no-deploy ``` #### npm ```bash npm create prisma@latest -- --provider mongodb --no-deploy ``` Run this on Node.js 22.18 or newer. The command preselects MongoDB and prompts you for the project name, the template, the contract authoring style (PSL or TypeScript), your package manager, and whether to install agent skills. If you would rather add Prisma ORM to a project by hand, without the generated template, follow [Set up Prisma ORM from scratch](https://www.prisma.io/docs/prisma-orm/from-scratch), which uses PostgreSQL. Setup gives you the app template, a starter contract, `prisma-8.md`, project-level Prisma ORM skills for your coding agent, and package scripts for the database steps below. Answer no at the skills prompt, or pass `--skills none`, to skip the agent skill files; to remove them later, see [`skills sync`](https://www.prisma.io/docs/cli/skills) and the [`skills` config section](https://www.prisma.io/docs/cli/configuration#agent-skills). Sample users are seeded automatically the first time the app queries the database, so there is no separate seed step. A standalone `mongod` is enough to work through this quickstart. A replica set is only needed for transactions and change streams, and MongoDB Atlas already gives you one. The connection string the scaffold writes assumes a single-node replica set named `rs0` on port 27017, so either run one locally or edit the string to point at your standalone server. If you use a standalone `mongod`, remove `replicaSet=rs0` from the connection strings below (keep `directConnection=true`); a URL that names a replica set only connects to a server that belongs to one. ## 1. Set the database connection [#1-set-the-database-connection] The scaffold writes a `.env` with a local replica-set connection string: ```text title=".env" DATABASE_URL="mongodb://localhost:27017/mydb?replicaSet=rs0&directConnection=true" ``` The generated scripts read environment variables directly rather than `.env`, and the CLI and the app use different variable names: the CLI commands read `MONGODB_URL`, and the app reads `DATABASE_URL`. Export both in the shell you work in: ```bash export MONGODB_URL="mongodb://localhost:27017/mydb?replicaSet=rs0&directConnection=true" export DATABASE_URL="$MONGODB_URL" ``` If you use MongoDB Atlas, use the connection string from your Atlas cluster instead. ## 2. Create the migration plan [#2-create-the-migration-plan] Create the first migration plan from the starter contract. #### bun ```bash bun run migration:plan --name init ``` #### pnpm ```bash pnpm run migration:plan --name init ``` #### yarn ```bash yarn migration:plan --name init ``` #### npm ```bash npm run migration:plan -- --name init ``` The output reports the planned operations: creating the `users` and `posts` collections and a unique index on `users.email`. ## 3. Apply the migration [#3-apply-the-migration] Apply the planned migration to MongoDB. #### bun ```bash bun run migrate ``` #### pnpm ```bash pnpm run migrate ``` #### yarn ```bash yarn migrate ``` #### npm ```bash npm run migrate ``` The output ends with a summary like `Applied 3 operation(s) across 1 contract space`. If it fails with a connection error, confirm `MONGODB_URL` is exported in this shell and points at a running MongoDB deployment; if the string still names `replicaSet=rs0`, that replica set has to exist. The `1 contract space` in the summary is the migration history for your own models. Prisma ORM calls it the `app` [contract space](https://www.prisma.io/docs/orm/migrations/the-migration-graph#terms-used-on-this-page), and its migrations are in `migrations/app/`. ## 4. Run the app [#4-run-the-app] Start the app and confirm the sample query runs successfully. #### bun ```bash bun run dev ``` #### pnpm ```bash pnpm run dev ``` #### yarn ```bash yarn dev ``` #### npm ```bash npm run dev ``` Use the URL or terminal output shown by your template. You should see the seeded users returned from MongoDB. ## Next steps [#next-steps] * Open `src/prisma/contract.prisma` or `src/prisma/contract.ts` and change the starter model. * If you already have an app, follow [Add Prisma ORM and MongoDB to an existing app](https://www.prisma.io/docs/prisma-orm/quickstart/existing-app/mongodb) when its database is empty, or [Add Prisma ORM to an existing MongoDB database](https://www.prisma.io/docs/prisma-orm/add-to-existing-project/mongodb) when the database already has collections. * Read the [Prisma ORM overview](https://www.prisma.io/docs/orm) when you want the concepts behind contracts, query APIs, and migrations. ## Related pages - [`Create a new app with PostgreSQL`](https://www.prisma.io/docs/prisma-orm/quickstart/postgresql): Create a new Prisma ORM project with PostgreSQL using create-prisma@latest.