クエリ
このセクションで
CRUD
このページでは、生成されたPrisma Client APIを使用してCRUD操作を実行する方法について説明します。CRUDは次の頭字語です。
フィールドの選択
概要
リレーションクエリ
Prisma Clientの主要な機能は、2つ以上のモデル間のリレーションをクエリする機能です。リレーションクエリには以下が含まれます。
フィルタリングとソート
Prisma Clientは、whereクエリオプションによるフィルタリングと、orderByクエリオプションによるソートをサポートしています。
ページネーション
Prisma Clientは、オフセットページネーションとカーソルベースのページネーションの両方をサポートしています。
集計、グループ化、要約
Prisma Clientを使用すると、レコードのカウント、数値フィールドの集計、および一意のフィールド値の選択が可能です。
トランザクションとバッチクエリ
データベーストランザクションとは、全体として成功するか失敗するかのどちらかが保証された一連の読み書き操作を指します。このセクションでは、Prisma Client APIがトランザクションをサポートする方法について説明します。
全文検索
Prisma Clientは、PostgreSQLデータベースではバージョン2.30.0以降、MySQLデータベースではバージョン3.8.0以降で全文検索をサポートしています。全文検索(FTS)を有効にすると、データベースの列内でテキストを検索することで、アプリケーションに検索機能を追加できます。
カスタムバリデーション
Prisma Clientクエリのユーザー入力に対するランタイムバリデーションは、以下のいずれかの方法で追加できます。
算出フィールド
算出フィールドを使用すると、既存のデータに基づいて新しいフィールドを導出できます。一般的な例として、フルネームを算出したい場合が挙げられます。データベースには名と姓のみが保存されている場合でも、名と姓を組み合わせてフルネームを算出する関数を定義できます。算出フィールドは読み取り専用で、データベースではなくアプリケーションのメモリに保存されます。
フィールドの除外
デフォルトでは、Prisma Clientはモデルのすべてのフィールドを返します。selectを使用して結果セットを絞り込むことができますが、モデルが大きく、少数のフィールドのみを除外したい場合には扱いにくい場合があります。
カスタムモデル
アプリケーションが成長するにつれて、関連するロジックをグループ化する必要があると感じるかもしれません。次のいずれかの方法を提案します。
大文字と小文字の区別
大文字と小文字の区別はデータのフィルタリングとソートに影響し、データベースの照合順序によって決定されます。設定によってデータのソートとフィルタリングの結果が異なります。
クエリの最適化
このガイドでは、クエリパフォーマンスの特定と最適化、パフォーマンス問題のデバッグ、および一般的な課題への対処方法について説明します。