データモデルの設計検索
Atlas Search は、さまざまなデータ モデルのクエリを最適化するために役立つメソッドをいくつか提供します。次のチュートリアルを使用して一般的な設計パターンを学び、Atlas Search でデータを効果的にクエリできるようにします。
前提条件
チュートリアルを完了するには、以下が必要です。
MongoDB バージョン 4.2 以降を搭載した Atlas クラスター。
Atlas クラスターにロードされたサンプル データ。
Project Data Access Admin
Atlas Search インデックスを作成するには、Atlasプロジェクトへの 以上のアクセス権が必要です。テスター、
mongosh
、Compass、またはサポートされているMongoDBドライバーを使用して、クラスターでクエリを実行します。
注意
$search
集計ステージでは任意のドライバーを使用して Atlas Search クエリを実行できます。これらのチュートリアルには、選択したクライアント向けの例が含まれています。詳細については、特定のチュートリアル ページを参照してください。
Atlas CLI を使用して作成したローカル Atlas 配置で、これらのチュートリアルを完了することもできます。 詳細については、「 Atlas 配置のローカル配置の作成 」を参照してください。
文字列固有の演算子を使用した非文字列フィールドのクエリ
queryString や autocomplete などの特定の Atlas Search 演算子は、string フィールドのみをサポートします。これらの演算子を使用して文字列以外のフィールドをクエリする必要がある場合は、これらのフィールドの値を文字列に変換し、変換されたフィールドを マテリアライズドビューに保存できます 。マテリアライズドビューを使用すると、string 固有の演算子を使用して変換されたフィールドをクエリし、元のデータを ソースコレクション内で維持できます。
開始するには、「アルファベット以外のデータを string として検索する方法」を参照してください。
埋め込みドキュメント内のクエリ フィールド
Atlas Search を使用して、ドキュメントの配列がネストされている場合でも、ドキュメントの配列内のフィールドをクエリできます。ドキュメントフィールドを embeddedDocuments 型としてインデックスと、次のタイプの配列内のフィールドを含む、これらのドキュメント内のフィールドに対してクエリを実行できます。
ドキュメントの配列。
ドキュメント内のドキュメントの配列。
ドキュメントの配列内のドキュメントの配列。
開始するには、「埋め込みドキュメントのフィールドに対して Atlas Search クエリを実行する方法」を参照してください。
複数のコレクションにわたるクエリ
検索が複数のコレクションにまたがる必要がある場合は、次のメソッドを使用してコレクション全体を検索できます。
コレクションを結合して検索するには、
$lookup
$search
と ステージを使用します。複数のコレクションの検索結果を結合するには、
$unionWith
ステージを使用します。複数のコレクションを統合し、まとめてインデックスして検索できるようにするには、マテリアライズドビューを作成します。