定義
cursor.hint(index)重要
mongosh メソッド
このページでは メソッドについて説明します。これはNode.jsなどの言語固有のドライバーのドキュメントではありません
mongosh。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()を使用してクエリに使用するインデックスを指定することはできません。hint()表示のインデックス、または存在しないインデックスで を使用すると、操作はエラーを返します。時系列コレクションでは、インデックス名を使用してヒントのみを指定でき、インデックス キー パターンは指定できません。
$natural
$natural と cursor.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 } )