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