2022 年 4 月 5 日

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

我们很高兴地宣布,今天的 Prisma ORM 版本增加了对 MongoDB 的稳定且可用于生产环境的支持!加入我们在 发布周 4 月 25-29 日期间的庆祝活动。

Prisma Adds Support for MongoDB

Prisma + MongoDB = 💚

自 Prisma ORM 首次发布以来,对 MongoDB 的支持一直是 最受用户期待的功能之一。将这两种技术结合使用可以提高开发人员的效率,并使他们能够更快地交付更具野心的软件。

借助 Prisma schema,不再有数据不一致性

Node.js 开发人员喜欢 MongoDB,因为它提供了灵活性和熟悉的基于 JSON 的数据模型!但是,作为 *无模式* 数据库意味着 MongoDB 用户在项目开始发展壮大时很容易遇到数据不一致的情况。

借助 Prisma,开发人员可以轻松地为他们想要存储在 MongoDB 中的数据定义 *schema*。这有以下几个好处

  • MongoDB 内部的数据结构变得显式。
  • 存储在 MongoDB 中的数据的一致性由 Prisma 保证。
  • 所有团队成员都清楚存储在 MongoDB 中的数据。

Prisma schema 使用 Prisma 直观且人类可读的建模语言编写,以下是一个示例

Prisma 的数据模型使处理关系变得特别容易。在上面的 schema 示例中,您可以看到从 UserPost 的一对多关系(通过 引用),以及表示 User 模型上 *嵌入式文档* 的 Profile 类型。

自动完成数据库查询

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

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

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

MongoDB 本身不支持 *参照操作*(即级联删除/更新)。Prisma “polyfill” 了此功能,并允许开发人员在 Prisma schema 中配置这些操作,因此可以帮助维护 MongoDB 数据库中数据的 参照完整性

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

Prisma 使 MongoDB 类型安全

当 Prisma 在 TypeScript 应用程序中使用时,它尤其开始大放异彩,因为它提供了非常强大的类型安全保证。

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

如果您在上面的代码片段中选择“生成的类型”选项卡,您会看到生成的 userData 常量的类型现在根据查询中选择的字段进行定制。

这有两个主要好处

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

立即试用 MongoDB 和 Prisma

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

从头开始...

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


从头开始使用 MongoDB

... 或者将 Prisma 与您现有的 MongoDB 数据库一起使用

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

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


将 Prisma 添加到现有的 MongoDB 项目

加入我们,参加为期一周的庆祝活动 🎉

为了庆祝 Prisma 对 MongoDB 的支持,我们计划在 4 月底举办发布周,其中包含许多有趣的活动、新内容和精彩的活动!

通过上面的网站注册加入我们的发布周!如果您正在使用 MongoDB 和 Prisma 构建一些东西,并想在发布周期间谈论它,您也可以为我们的 Showcase Lightning Talks (~3 分钟) 提交演讲提案

不要错过下一篇文章!

注册 Prisma 新闻通讯