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