Prisma + MongoDB = 💚
MongoDBのサポートは、Prisma ORMの最初のリリース以来、最も要望の多かった機能の1つでした。両方のテクノロジーを一緒に使用することで、開発者の生産性が向上し、より野心的なソフトウェアをより速く出荷できるようになります。
Prismaスキーマのおかげでデータの一貫性の問題が解消
Node.js開発者は、MongoDBが提供する柔軟性と使い慣れたJSONベースのデータモデルを気に入っています!しかし、「スキーマレス」なデータベースであるということは、プロジェクトが進化して規模が大きくなるにつれて、MongoDBユーザーがデータの一貫性の問題に直面しやすくなることを意味します。
Prismaを使用すると、開発者はMongoDBに保存したいデータの「スキーマ」を簡単に定義できます。これにはいくつかの利点があります
- MongoDB内のデータ構造が明示的になります。
- MongoDBに保存されるデータの一貫性はPrismaによって保証されます。
- すべてのチームメンバーがMongoDB内に保存されているデータを把握できます。
Prismaスキーマは、Prismaの直感的で人間が読みやすいモデリング言語で記述されます。以下に例を示します
Prismaのデータモデルは、「リレーション」の操作を特に簡単にします。上記のスキーマ例では、User
からPost
への「参照」を介した1対多のリレーション、およびUser
モデル上の「埋め込みドキュメント」を表すProfile
型が示されています。
データベースクエリのオートコンプリート
MongoDBと同様に、PrismaもMongoDBデータベースをクエリするために使用できるデータベースクライアント、Prisma Clientを提供します。両者の主な違いの1つは、Prisma Clientが定義したスキーマを「認識」しているため、オートコンプリートを通じてクエリの記述を支援できることです。
また、Prismaでは、MongoDBインスタンスに対してより専門的なクエリを実行する必要がある場合、MongoDBのネイティブクエリAPIにフォールバックすることも可能です。
参照ベースのリレーションにおけるカスケード削除/更新
MongoDBは、参照アクション(カスケード削除/更新など)をネイティブにサポートしていません。Prismaはこの機能を「ポリフィル」し、開発者がPrismaスキーマでこれらを構成できるようにすることで、MongoDBデータベース内のデータの参照整合性に貢献できます。
上記のデータモデルでは、author
フィールドの@relation
属性がonDelete: Cascade
を使用しています。これは、User
ドキュメントが削除されると、それに関連付けられていたすべてのPost
ドキュメントも削除されることを意味します。
PrismaがMongoDBをタイプセーフに
Prismaは、特にTypeScriptアプリケーションで使用される場合、非常に強力なタイプセーフティ保証を提供するため、その真価を発揮し始めます。
例えば、このクエリを考えてみましょう。ここでは、select
オプションを使用して、User
モデル(とそのリレーション)のどのフィールドがレスポンスで返されるべきかを指定しています
上記のコードスニペットで「生成された型」タブを選択すると、結果のuserData
定数の型が、クエリで選択されたフィールドに合わせてカスタマイズされていることがわかります。
これには2つの主な利点があります
- TypeScriptコンパイラは、クエリから返されなかったフィールドに誤ってアクセスした場合をキャッチします。
- オートコンプリートの提案が、与えられた型に合わせて調整されます。
PrismaでMongoDBを今すぐ試す
MongoDBとPrismaを使ってどのようなものが構築されるか、楽しみにしています!MongoDBの利用開始については、ドキュメント(下記のボタンを参照)をご参照ください。
ゼロから始めるには...
MongoDBとPrismaを始めるには、新しいプロジェクトをゼロからセットアップするガイドに従ってください。
MongoDBでゼロから始める
...または既存のMongoDBデータベースでPrismaを使用する
すでにMongoDBデータベースを使用している既存のプロジェクトがある場合は、Prismaを段階的に簡単に導入できます。
Prismaには、MongoDBコレクションに保存されているドキュメントの構造を読み取り、それに応じたPrismaモデルを作成する「イントロスペクション」機能があります。また、Mongooseからの移行ガイドも近日中に公開予定です。
既存のMongoDBプロジェクトにPrismaを追加
お祝いの週に参加しませんか 🎉
PrismaでのMongoDBサポートを祝して、4月末に楽しいアクティビティ、新しいコンテンツ、素晴らしいイベントが盛りだくさんの発売記念ウィークを企画しています!
- 日程: 4月25日 - 29日
- 場所: バーチャル
- ウェブサイト: https://prisma.dokyumento.jp/mongodb-launch
発売記念ウィークに参加するには、上記のウェブサイトからサインアップしてください!MongoDBとPrismaを使って何かを構築していて、発売記念ウィーク中にそれについて話したい場合は、Showcase Lightning Talks(約3分)のトーク提案を提出することもできます!
次回の投稿をお見逃しなく!
Prismaニュースレターに登録する