定義
cursor.hint(index)重要
mongosh メソッド
This page documents a
mongoshmethod. This is not the documentation for a language-specific driver, such as Node.js.MongoDB API ドライバーについては、各言語の「MongoDB ドライバーのドキュメント」を参照してください。
クエリでこのメソッドを呼び出して、MongoDB のデフォルトのインデックス選択とクエリ最適化プロセスをオーバーライドします。コレクションの現在のインデックスのリストを返すには、
db.collection.getIndexes()を使用します。The
cursor.hint()method has the following parameter:Parameterタイプ説明index文字列またはドキュメント
クエリを実行する際に MongoDB が使用するように「ヒント」を与える、または強制するインデックス。インデックス名またはインデックス仕様ドキュメントのいずれかでインデックスを指定します。
また、
{ $natural : 1 }を指定して、クエリで順方向にコレクションスキャンを強制的に実行したり、{ $natural : -1 }を指定して、逆方向にコレクションスキャンを実行したりすることもできます。
互換性
このメソッドは、次の環境でホストされている配置で使用できます。
- MongoDB Atlas はクラウドでの MongoDB 配置のための完全管理サービスです
注意
このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
動作
When an index filter exists for the query shape, MongoDB ignores the
hint().If a query includes a
$textexpression, you cannot usehint()to specify which index to use for the query.If you use
hint()on a hidden index or an index that doesn't exist, the operation returns an error.時系列コレクションでは、インデックス名を使用してヒントのみを指定でき、インデックス キー パターンは指定できません。
$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 } )