本日リリースの Prisma ORM が、MongoDB の安定版および本番環境対応を追加したことをお知らせします!4月25日~29日の Launch Week 期間中のお祝いにご参加ください。
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) も提供します。2 つの主な違いの 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 を追加する
1 週間の祝賀会にご参加ください 🎉
Prisma での MongoDB サポートを記念して、4 月末に楽しいアクティビティ、新しいコンテンツ、素晴らしいイベント満載の Launch Week を企画しています!
- 日時: 4月25日~29日
- 場所: バーチャル
- ウェブサイト: https://prisma.dokyumento.jp/mongodb-launch
上記のウェブサイトからサインアップして、Launch Week にご参加ください!また、MongoDB と Prisma で何かを構築していて、Launch Week 中にそれについて話したい場合は、Showcase Lightning Talks (~3 分) の講演提案を提出することもできます!
次の投稿をお見逃しなく!
Prisma ニュースレターに登録する