2022年4月5日

Prisma 新增对 MongoDB 的支持 — 加入我们的发布周庆祝活动 🎉

我们很高兴地宣布,今天的 Prisma ORM 发布新增了对 MongoDB 的稳定生产级支持!欢迎在 发布周期间加入我们的庆祝活动,日期为4月25日至29日

Prisma Adds Support for MongoDB

Prisma + MongoDB = 💚

自 Prisma ORM 最初发布以来,对 MongoDB 的支持一直是最受用户请求的功能之一。将这两种技术结合使用,能让开发者提高生产力,并更快地交付更具雄心壮志的软件。

告别数据不一致,感谢 Prisma 模式

Node.js 开发者喜欢 MongoDB,因为它提供了灵活性以及熟悉的基于 JSON 的数据模型!然而,作为一种无模式数据库,这意味着随着项目的演进和规模增长,MongoDB 用户很容易遇到数据不一致的问题。

借助 Prisma,开发者可以轻松地为希望存储在 MongoDB 中的数据定义一个模式。这带来了多项好处:

  • MongoDB 内部的数据结构变得明确。
  • Prisma 确保了存储在 MongoDB 中的数据的一致性。
  • 所有团队成员都了解 MongoDB 中存储的数据。

Prisma 模式采用 Prisma 直观且易于阅读的建模语言编写,示例如下:

Prisma 的数据模型使得处理关系变得异常容易。在上述模式示例中,您可以看到从 UserPost 的一对多关系通过引用实现,以及代表 User 模型上嵌入式文档Profile 类型。

数据库查询自动补全

与 MongoDB 类似,Prisma 也提供了一个数据库客户端:Prisma Client,您可以用来查询您的 MongoDB 数据库。两者之间的主要区别之一是 Prisma Client 感知您定义的模式,因此它可以帮助您通过自动补全编写查询。

当您需要对 MongoDB 实例运行更专业的查询时,Prisma 也允许您回退到 MongoDB 的原生查询 API。

基于引用的级联删除/更新

MongoDB 不原生支持引用操作(即级联删除/更新)。Prisma “填充”了此功能,允许开发者在 Prisma 模式中进行配置,从而有助于维护 MongoDB 数据库中数据的引用完整性

在上述数据模型中,author 字段上的 @relation 属性使用了 onDelete: Cascade。这意味着当 User 文档被删除时,所有与之相关的 Post 文档也会被删除。

Prisma 让 MongoDB 类型安全

Prisma 在 TypeScript 应用程序中使用时尤其能发挥其优势,因为它提供了极强的类型安全保证。

例如,考虑以下查询,我们通过 select 选项指定 User 模型(及其关系)的哪些字段应在响应中返回:

如果您选择上方代码片段中的生成类型标签,您会看到结果 userData 常量的类型现在已根据查询中选择的字段进行了调整。

这有两个主要好处:

  • TypeScript 编译器将捕获您意外访问未从查询返回的字段的情况。
  • 您的自动补全建议会根据给定类型进行调整。

立即试用 Prisma 与 MongoDB

我们很高兴能看到您将用 MongoDB 和 Prisma 构建出什么!您可以在我们的文档中开始使用 MongoDB(参见下方按钮)。

从零开始...

要开始使用 MongoDB 和 Prisma,您可以按照我们的指南从零开始设置一个新项目。


从零开始使用 MongoDB

... 或将 Prisma 与您现有的 MongoDB 数据库结合使用

如果您已经有一个使用 MongoDB 数据库的现有项目,您可以轻松地开始逐步采用 Prisma。

Prisma 具有内省功能,可以读取您存储在 MongoDB 集合中的文档结构并创建相应的 Prisma 模型。我们也将很快发布从 Mongoose 迁移的指南。


将 Prisma 添加到现有 MongoDB 项目

加入我们,共同庆祝一周 🎉

为庆祝 Prisma 对 MongoDB 的支持,我们计划在四月底举办一个发布周,届时将有许多有趣的活动、新内容和精彩的活动!

通过上方网站注册,加入我们的发布周!如果您正在使用 MongoDB 和 Prisma 构建东西,并希望在发布周期间谈论它,您也可以提交您的展示闪电演讲提案(约3分钟)

不要错过下一篇文章!

订阅 Prisma 新闻通讯

© . All rights reserved.