クライアント アプリから Atlas をクエリする
項目一覧
Realm SDK のMongoDB Data Accessで標準の MongoDB 問い合わせ言語(MQL)構文を使用して、クライアント アプリケーションからリンクされた MongoDB Atlas クラスター内のデータをクエリできます。
MongoDB Data Access は、アプリのロールベースのアクセス権限、クエリフィルター、ドキュメント スキーマを強制することでデータを保護します。 これらの機能を使用すると、サーバー上でデータを安全に維持しながら、MQL を使用して複雑なクライアント側クエリを作成できます。
MongoDB データアクセスの用途
次の場合には、アプリケーションで MongoDB Data Access を使用する必要があります。
MongoDB ドライバーのような API を使用したい
サーバー上ではなくクライアントコードでデータベースクエリを記述したい
クライアント デバイスからアドホック クエリを構築したい。
このようなシナリオのアプリケーションでは、 Atlas Device Sync ではなく MongoDB Data Access を使用することをお勧めします。
Realm Database でモデル化されない、またはモデル化できないドキュメントをクエリしている場合。
同期されていないコレクションにアクセスする場合。
データをローカルに保持 したくない 場合。
使用している Realm Web SDK は、Realm Database または Device Sync をサポートしていません。
クライアント側のシナリオで MongoDB Data Access の代わりに、 Atlas Data API を使用できます。
また、言語に HTTPS クライアントがある限り、Realm SDK なしでこれらの API を使用することもできます。 ただし、これらの API は Realm SDK の MongoDB Data Access と同じ型セーフな MQL 構文を機能していません。
サーバー側のシナリオでは MongoDB Data Access の代わりに、次のものを使用できます。
MongoDB ドライバー。 MongoDB ドライバー を使用して Atlas に接続する方法は、App Services 経由で接続するよりもパフォーマンスと柔軟であるため、サーバー側のアプローチとして一般的に推奨されます。 ドライバー操作に App Services ルールを適用する場合は、 App Services ワイヤプロトコル を使用できます。
Atlas Data API
セットアップ
Realm SDK から MongoDB Data Access を使用するには、次のセットアップを実行する必要があります。
App Services アプリの作成
App Services AppリンクされたMongoDB データ ソースを使用して を作成します。
アプリの作成の詳細については、「 アプリの作成とデータソースのリンク 」を参照してください。
認証プロバイダの追加
アプリに少なくとも 1 つの認証プロバイダを追加します。 すべての MongoDB Data Access クエリは認証済みユーザーのコンテキストで実行されます。 ユーザー認証を有効にする方法の詳細については、「認証プロバイダ 」を参照してください。
コレクションにルールを追加する
クライアント側のクエリを保護するには、MongoDB Data Access で使用するすべてのコレクションに App Services ルールを追加する必要があります。 コレクションにルールを追加する方法については、 「 ロールと権限の定義 」を参照してください。
コレクションにルールを追加しない場合、クライアントからそのコレクションへのすべてのリクエストは失敗します。
コレクションへのスキーマとフィルターの追加(任意)
ルールに加えて、MongoDB Data Access でクエリするコレクションに スキーマとフィルター を追加することもできます。
スキーマはアプリのデータモデルを定義し、そのモデルに対してドキュメントを検証します。 フィルターを使用して、クライアントがデータベースに一致するデータのみを書込むようにします。
フィルターは MongoDB クエリをデータベースに送信する 前に 変更し、クエリでは結果のサブセットのみが返されるようになります。 例えば、クエリを変更するフィルターを定義して、ユーザーは自分が書き込んだデータにのみアクセスできるようにすることができます。
MongoDB Data Access を使用するためにスキーマとフィルターは必要ありませんが、ほとんどの本番環境のユースケースに追加する必要があります。