cursor.hint()
定義
cursor.hint(index)
重要
mongosh メソッド
これは
mongosh
メソッドです。 これは、Node.js
またはその他のプログラミング言語固有のドライバー メソッドのドキュメントではありません。ほとんどの場合、
mongosh
メソッドはレガシーのmongo
shell メソッドと同じように動作します。 ただし、一部のレガシー メソッドはmongosh
では利用できません。レガシー
mongo
shell のドキュメントについては、対応する MongoDB Server リリースのドキュメントを参照してください。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 } )