定義
cursor.hint(index)重要
mongosh メソッド
このページでは、
mongoshメソッドが文書化されます。これは Node.js などの言語固有のドライバーのドキュメントではありません。MongoDB API ドライバーについては、各言語の MongoDB ドライバー ドキュメントを参照してください。
MongoDB のデフォルトのインデックス選択とクエリ最適化プロセスを上書きするには、クエリでこのメソッドを呼び出します。コレクションの現在のインデックスのリストを返すには
db.collection.getIndexes()を使用します。cursor.hint()メソッドには次のパラメーターがあります。Parameterタイプ説明index文字列またはドキュメント
クエリを実行する際に MongoDB が使用するように「ヒント」を与える、または強制するインデックス。インデックス名またはインデックス仕様ドキュメントのいずれかでインデックスを指定します。
また、
{ $natural : 1 }を指定して、クエリで順方向にコレクションスキャンを強制的に実行したり、{ $natural : -1 }を指定して、逆方向にコレクションスキャンを実行したりすることもできます。
互換性
このメソッドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
注意
このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
動作
クエリシェイプにインデックス フィルターが存在する場合、MongoDB は
hint()を無視します。クエリに
$text式が含まれている場合、hint()を使用してクエリに使用するインデックスを指定することはできません。時系列コレクションでは、インデックス名を使用してヒントのみを指定でき、インデックス キー パターンは指定できません。
クエリ設定は、インデックスのヒントよりも優先されます。 MongoDB は、一致するクエリ設定にインデックスヒントが含まれている場合、コマンド フィールドとして渡すインデックスヒントを無視します。インデックスのヒントはクエリシェイプには影響しません。ヒントとクエリ設定の詳細については、「 クエリ設定のシンタックス 」を参照してください。
$natural
$naturalcursor.hint()を と組み合わせて使用し、コレクションスキャンを実行すると、自然な順序でドキュメントが返されます。
使用方法については、コレクションスキャンの強制を参照してください。
例
インデックスの指定
次の例では、age フィールドのインデックスを使用して、users という名前のコレクション内のすべてのドキュメントを返します。
db.users.find().hint( { age: 1 } )
インデックス名を使用してインデックスを指定することもできます。
db.users.find().hint( "age_1" )
コレクションスキャンの強制
{ $natural : 1 } を指定すると、クエリで強制的にコレクションの順方向スキャンを実行できます。
db.users.find().hint( { $natural : 1 } )
{ $natural : -1 } を指定して、クエリに逆方向のコレクションスキャンを強制的に実行させることもできます。
db.users.find().hint( { $natural : -1 } )