cursor.hint()
定義
cursor.hint(index)
重要
mongosh メソッド
このページでは、
mongosh
メソッドが文書化されます。これは Node.js などの言語固有のドライバーのドキュメントではありません。MongoDB API ドライバーについては、各言語の MongoDB ドライバー ドキュメントを参照してください。
MongoDB のデフォルトのインデックス選択とクエリ最適化プロセスを上書きするには、クエリでこのメソッドを呼び出します。コレクションの現在のインデックスのリストを返すには
db.collection.getIndexes()
を使用します。cursor.hint()
メソッドには次のパラメーターがあります。Parameterタイプ説明index
文字列またはドキュメントクエリを実行する際に MongoDB が使用するように「ヒント」を与える、または強制するインデックス。インデックス名またはインデックス仕様ドキュメントのいずれかでインデックスを指定します。
また、
{ $natural : 1 }
を指定して、クエリで順方向にコレクションスキャンを強制的に実行したり、{ $natural : -1 }
を指定して、逆方向にコレクションスキャンを実行したりすることもできます。
動作
クエリシェイプにインデックス フィルターが存在する場合、MongoDB は
hint()
を無視します。クエリに
$text
式が含まれている場合、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 } )