データモデルの定義
Overview
アプリのデータモデルは、アプリが使用するデータの説明です。 データモデルにより、データが特定の構造に準拠し、有効な値のみを含み、予想どおりの方法でのみ変更されることが保証されます。
データモデルは、次のようないくつかのコンポーネントで構成されています。
アプリのデータ型を記述する宣言型スキーマのセット。
スキーマ間の論理接続を定義する関係のセット。
グローバル 定数、環境値、秘密値を定義するために使用できる静的値のセット。
特定のリクエストの全データのサブセットに MongoDB 操作を動的に制限するために使用できるルールベースのクエリフィルターのセット。
アプリのデータモデルを定義することは、Device Sync を使用して構成と の重要な部分です。 他の App Services を使用するために、データモデルを定義する必要はありません。 ただし、データモデルにより多くの強力な機能のロックが解除されるため、時間を節約し、ボタンを使用する代わりに機能の構築に集中できます。
たとえば、データモデルを定義すると、アプリ管理ツールを使用してネイティブのプログラミング言語で同期可能な Device SDK オブジェクトモデルを自動的に生成できます。 詳しくは、「 SDK オブジェクトモデルの生成 」を参照してください。
ドキュメント スキーマ
ドキュメント スキーマは、アプリが使用する特定のタイプのデータの構造を定義する JSON オブジェクトです。 ドキュメント スキーマは、ドキュメントが持つどのフィールド、それらのフィールドに含まれる値の型、および値の変更が有効になるために満たす必要がある条件を記述します。
スキーマはコレクション レベルで定義します。 つまり、各スキーマを、そのタイプのドキュメントを保持する特定の MongoDB コレクションに関連付けます。 スキーマは、MongoDB の組み込み BSON types のサポートを含む JSON schema 標準のスーパーセットを使用するため、MongoDB でデータを完全に記述できます。
アプリでは、データが MongoDB に書き込まれるたびに、実行時にスキーマが強制されます。 これには、API サービス、関数、または Device Sync からの挿入、更新、および削除が含まれます。
詳細については、「スキーマ 」を参照してください。
関係
関係とは、1 つのドキュメントを 0 個以上の他のドキュメントに論理的に関連付けることができる 2 つのドキュメント スキーマ間の接続です。
関係では、「ソース」ドキュメントには関連ドキュメントへの参照が保存されます。たとえば、関連ドキュメントの _id
値のリストなどです。 Device Sync を使用すると、App Services は関連ドキュメントへの参照を自動的に解決し、それらを直接クエリできるようになります。
詳細については、「関係 」を参照してください。
Values & Secrets
値は、アプリ全体が名前でアクセスできる定数であり、アプリ全体でさまざまな方法でアクセスできます。 たとえば、多数の関数定義でベース URL を重複させるのではなく、 値を使用して外部 API サービスのベース URL を定義し、その 値を参照できます。
また、アプリの環境タグによって変更される環境値を定義することもできます。 たとえば、開発環境と本番環境では異なる API ベース URL を使用する場合があります。
API キーのような機密情報の場合は、シークレットという名前の シークレット 値を定義できます。 秘密値は、定義した後直接公開されることはありません。 代わりに、構成ファイルとルール式で名前で参照します。
詳細については、「値と秘密 」を参照してください。
クエリフィルター
クエリフィルターは、データソースに対する読み取りおよび書込み操作を、それに含まれるすべてのデータのサブセットに制限します。 クエリ フィルターは、データソースに送信される前に操作に自動的に連結される標準の MongoDB クエリとプロジェクション オブジェクトです。
フィルターは動的であり、操作を実行したユーザーやその他の実行情報に基づいて異なる条件を適用する場合があります。 コレクションにフィルターを追加すると、コンテキストに応じてアクセスを制限し、大規模なデータセットのクエリ パフォーマンスを向上させることができます。
詳細については、「受信クエリのフィルタリング 」を参照してください。