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 中的資料定義結構描述。這有以下幾個優點:

  • MongoDB 內部的資料結構變得明確。
  • Prisma 確保儲存在 MongoDB 中的資料一致性。
  • 所有團隊成員都清楚 MongoDB 內部儲存的資料。

Prisma 結構描述以 Prisma 直觀且人類可讀的模型語言編寫,以下是一個範例:

Prisma 的資料模型讓處理關聯特別容易。在上面的結構描述範例中,您可以看到從 UserPost 透過 參考 的一對多關聯,以及代表 User 模型上 嵌入式文件Profile 類型。

自動完成資料庫查詢

與 MongoDB 類似,Prisma 也提供了一個資料庫用戶端,您可以使用它來查詢您的 MongoDB 資料庫:Prisma Client。兩者之間的主要差異之一是 Prisma Client 知道您定義的結構描述,因此它可以透過自動完成功能來幫助您編寫查詢。

當您需要對 MongoDB 執行更專業的查詢時,Prisma 也允許您回退到 MongoDB 的原生查詢 API。

參考關聯上的串聯刪除/更新

MongoDB 原生不支援參考動作(即串聯刪除/更新)。Prisma「polyfill」了此功能,並允許開發人員在 Prisma 結構描述中配置這些功能,因此可以為 MongoDB 資料庫中資料的 參考完整性 做出貢獻。

在上面的資料模型中,author 欄位上的 @relation 屬性使用了 onDelete: Cascade。這表示當 User 文件被刪除時,所有與其相關的 Post 文件也會被刪除。

Prisma 使 MongoDB 具備型別安全

當 Prisma 在 TypeScript 應用程式中使用時,尤其開始展現其優勢,因為它提供了極其強大的型別安全保證。

例如,考慮這個查詢,我們透過 select 選項指定應在回應中傳回 User 模型(及其關聯)的哪些欄位:

如果您選取上面程式碼片段中的 產生的型別 標籤,您會看到結果 userData 常數的型別現在根據查詢中選取的欄位量身定制。

這有兩個主要優點:

  • TypeScript 編譯器將捕獲您意外存取未從查詢傳回的欄位的情況。
  • 您的自動完成建議會根據給定的型別量身定制。

立即試用 MongoDB 與 Prisma

我們很高興看到您將使用 MongoDB 和 Prisma 建構什麼!您可以從我們的文件中開始使用 MongoDB(請參閱下面的按鈕)。

從頭開始...

若要開始使用 MongoDB 和 Prisma,您可以依照我們的指南從頭設定一個新專案。


從頭開始使用 MongoDB

... 或將 Prisma 與您現有的 MongoDB 資料庫搭配使用

如果您已經有一個使用 MongoDB 資料庫的現有專案,您可以輕鬆地開始逐步採用 Prisma。

Prisma 具有內省功能,可以讀取您儲存在 MongoDB 集合中的文件結構,並建立相應的 Prisma 模型。我們也將很快發佈從 Mongoose 遷移的指南。


將 Prisma 新增至現有的 MongoDB 專案

加入我們為期一週的慶祝活動 🎉

為了慶祝 Prisma 中對 MongoDB 的支援,我們計劃在四月底舉辦產品發表週,屆時將有許多有趣的活動、新內容和精彩的活動!

透過上述網站註冊以加入我們的產品發表週!如果您正在使用 MongoDB 和 Prisma 建構某些東西,並想在產品發表週期間談論它,您也可以提交您在 Showcase Lightning Talks 上的演講提案(約 3 分鐘)

不要錯過下一篇文章!

訂閱 Prisma 電子報