使用MongoDB临时集群构建你的第一个SaaS应用
这是一个全新的时代。一个曾经需要数小时甚至数天才能搭建好的原型,如今几分钟内就能启动并运行。只需一次 API 调用,AI 代理就能直接从你的 IDE 创建一个 MongoDB Atlas 集群,这样你就可以立即投入构建,而不必停下来去处理账户设置、云服务商选择、区域或集群配置。
在本教程中,你将使用 Atlas Ephemeral Cluster 来构建一个精致的求职申请追踪器:一个小型 SaaS,用户可以在看板上管理申请。这个应用刻意做得简单。重点在于工作流:立即为代理提供一个真实的数据库,快速验证一个想法,并在原型值得保留时认领该集群。
[LOADING...]
你将学到什么
- 什么是 Atlas Ephemeral Cluster,以及何时使用它
- 代理如何通过一次 API 调用配置数据库
- 如何将返回的连接详情交给代理,并构建一个全栈 SaaS
- 当原型值得保留时,如何在 Atlas 中认领该集群
为什么要使用临时集群?
早期阶段构建的重点是学习,而不是基础设施决策。在验证一个想法之前,就去决定所有的数据库需求、使用哪家云服务商,或者一般情况下如何运维,通常都为时过早。这些决策会打断从想法到可用产品之间的创作循环。
MongoDB Atlas Ephemeral Clusters(目前处于公开预览阶段)消除了这种中断。它们是通过一个无需身份验证的 API 端点创建的临时、免费的 Atlas M0 集群。响应中包含一个带有受限权限凭证的实时连接字符串,以及一个认领 URL,让人或代理可以立即开始构建。当原型具有价值时,你可以将该集群认领到你的 MongoDB Atlas 组织中。
临时集群会保持活跃 48 小时,并且可以在创建后的 7 天内被认领,之后就会被清理。请把它当作一个用于实验和原型的快速、一次性的环境,而不是生产部署。
工作流一览
- 配置一个临时集群。
- 将连接详情交给你的编程代理。
- 构建并测试最小可用的 SaaS 工作流。
- 如果你想保留原型,就认领该集群。
- 在 Atlas 中继续构建,拥有正常的归属权和控制权。
前置条件
- 用于配置调用的 curl
- 一个能够创建文件并运行你的应用的 AI 编程代理或 IDE 助手
- 在本示例中我使用 Claude Code
- 后端需要 Java 21+ 和 Maven
- React 前端需要 Node.js
- 只有在准备认领集群时才需要浏览器
你不需要 Atlas 账户即可开始临时集群工作流。
1. 配置集群(可选步骤)
对于本教程来说,这一步是可选的,因为我们可以直接让代理来配置集群,但了解一下如何让你的临时集群正常运行是很有好处的。从终端运行此请求,或者指示你的代理运行它并安全地存储响应。
你得到的响应应该类似这样:
此请求不需要登录流程。将响应保存到你的代理可以在本地访问的地方,但永远不要将它提交到源代码管理中:connectionString 字段包含你的应用开始构建所需的凭证,而 claimUrl 让你之后可以将临时集群转换为永久的 Atlas 集群。
它还提供了一些重要信息,包括临时集群何时过期(expiresAt)、clusterId、集群的状态,以及这些集群的服务条款。
2. 将数据库交给你的代理
创建集群只是工作流的前半部分。下一步是为你的编程代理提供一条清晰、安全的路径,从临时集群的响应通向一个正在运行的应用。
下面,我提供了一个详细的提示词,供我的代理在构建应用时使用。它定义了架构、功能需求、数据模型、开发边界以及工作顺序。在一开始就明确表达可以减少代理猜测的空间,也意味着当文件、依赖项和 API 契约都已经存在时,需要的方向纠偏会更少。
我还会给出关于如何设置 MongoDB Ephemeral Cluster 以及如何处理返回结果的详细说明。配置响应包含两条承担不同职责的信息:
connectionString是临时的数据库连接字符串。你的代理用它来配置 Spring Boot 后端,使 API 从第一次运行起就能创建集合、插入示例数据并持久化应用更改。claimUrl是给你用的,不是给应用用的。将它保存在安全的地方;它就是你在之后将成功原型迁移到你的 Atlas 组织时会用到的链接。
不要将这两个值粘贴到源文件中。相反,让代理把 MONGODB_URI 放入本地的 .env 文件或你的 shell 环境中,将该文件添加到 ../../../../../../.gitignore,并提交一个只包含变量名的 .env.example。这样既能保持生成项目可复现,又不会暴露授予临时集群访问权限的凭证。
将以下提示词复制到你的编程代理中。它告诉代理在编写应用代码之前先配置集群、检查响应、保留认领 URL,并仅通过 MONGODB_URI 使用连接字符串。
使用此提示词来生成用于追踪求职申请的 Spring、React + Vite 和 MongoDB 应用:
当代理完成项目生成后,在将要运行后端的终端会话中设置连接字符串。Spring Boot 在启动时读取 MONGODB_URI;这就是将生成的 API 连接到临时集群(而不是本地数据库)的方式。
保持该终端运行,然后打开第二个终端用于前端:
前端运行在 http://localhost:5173,并调用运行在 http://localhost:8080 的后端。代理应相应地配置本地开发体验,包括任何所需的 CORS 设置。这个提示词对产品的要求刻意精确,而对基础设施则刻意轻描淡写:代理可以创建集合、REST API、看板 UI 和示例数据,而临时集群从第一次运行起就提供了一个实时的持久化层。
3. 代理应该构建什么
该应用只需要一个主集合:applications。每个文档代表一份求职申请,并应捕获 UI 所需的字段,而不需要不必要的连接或服务。
而在临时集群中,我们甚至可以要求代理添加能够反映应用最常见查询的索引:
对于第一个原型来说,这个模型为代理提供了看板视图、文本搜索和过滤、状态移动以及顶部统计数据所需的一切。它还展示了一种有用的文档建模模式:本应属于一起的值,例如薪资范围和其货币,作为嵌套文档放在一起;标签则自然地以数组形式工作。
4. 运行并验证原型
你的代理的 README 应该提供确切的命令,但开发工作流应该很简单:
在 http://localhost:5173 打开前端。API 应运行在 http://localhost:8080。
[LOADING...]
演练核心工作流:
- 确认已预置的示例申请出现在它们对应的看板列中。
- 创建一份带有薪资范围和几个标签的申请。
- 将它从 Saved 移到 Applied,再移到 Interview。
- 按公司搜索,并按状态或标签过滤。
- 编辑它的备注,然后删除它。
- 确认总数、面试数、Offer 数和面试率统计数据正确更新。
[LOADING...]
在这个阶段,临时集群已经完成了它的使命:它让你拥有一个真实、持久化的原型,而无需提前投入基础设施工作。在学习循环仍然快速的时候,继续迭代构建提示词、数据模型、REST 端点和 UI。
5. 当想法值得时认领集群
当原型值得保留时,打开配置响应返回的认领 URL。完成 Atlas 流程,将该集群附加到你的 Atlas 组织。认领就是从实验性资源交接为可以作为你 Atlas 资产的一部分来管理的数据库。如果之前保存了,你可以要求代理提供它:
它就在用于创建临时集群的原始响应的 claimUrl 字段中:
通过访问该链接,你将被要求登录或创建一个 MongoDB Atlas 账户。登录后,你会被带到一个页面,决定要将集群添加到哪个组织,并配置网络连接的允许列表。
[LOADING...]
之后,就是认领集群的时候了!
[LOADING...]
说了这么多、做了这么多之后,临时集群现在就是一个标准集群了,可以像任何其他 MongoDB 集群一样与之交互、升级和配置。
[LOADING...]
在认领之前,请确保你清楚连接字符串在何处被使用,并从日志、截图、聊天记录或源代码管理中删除意外留下的副本。认领之后,更新应用的配置,使用适合你正在创建的环境的连接详情和访问控制。
临时集群适合用在哪里
当你需要以下情况时,可以使用临时集群:
- 立即为 AI 代理提供一个真实的 MongoDB 数据库
- 为一个新的 SaaS 工作流、演示、黑客松项目或概念验证做原型
- 在投入更长期的环境之前,测试文档模型和查询模式
- 让开发者留在 IDE 中,而不是让他们去经历各种设置界面
当你需要一个持久的环境、生产级的运维控制、选定的配置,或者一个生命周期超过临时集群的工作负载时,请使用常规的 Atlas 部署。## 要点
临时集群(Ephemeral Clusters)将数据库配置从早期产品工作的关键路径中移出。与其因为一个想法而中断手头工作,去创建账户、选择基础设施、配置部署,并在不同工具之间复制凭据,你可以给智能体一条指令:创建数据库,安全地保留连接详细信息,并立即基于它构建。
这改变了首次构建体验。你的智能体可以生成 Spring Boot API,通过 MONGODB_URI 连接它,创建 MongoDB 文档模型,填充真实感数据,并交付一个可将更改持久化到实时 Atlas 集群的 React 界面。你可以继续专注于有用的问题:工作流是否合理,数据模型是否站得住脚,以及这个产品是否值得继续做下去?
该集群有意设计为临时性的,这让实验几乎没有阻力。自由地进行原型设计,丢弃行不通的部分,避免把尚未验证的想法当作生产系统来对待。当应用程序值得再进行一轮迭代时,打开保存的 claimUrl,将该集群纳入你的 Atlas 组织。到那时,基础设施决策会成为有意的下一步,而不是开始工作的代价。
从一个 API 调用开始。从第一个提示开始就用真实数据库构建。当想法证明它值得继续存在时,认领该集群。
此应用程序的完整代码可在 GitHub 仓库 中获取。
作者:Tim Kelly
MongoDB 开发者关系倡导者