AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

cursor.hint()(mongoshメソッド)

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 のバージョン

  • クエリシェイプのインデックスフィルターが存在する場合、 MongoDBhint() は を無視します。

  • クエリに$text 式が含まれている場合、hint() を使用してクエリに使用するインデックスを指定することはできません。

  • hint()表示のインデックス、または存在しないインデックスで を使用すると、操作はエラーを返します。

  • 時系列コレクションでは、インデックス名を使用してヒントのみを指定でき、インデックス キー パターンは指定できません。

  • クラスタークエリ設定は、 コマンドフィールドとして渡されるクエリ設定やインデックスヒントよりも優先されます。MongoDB は、一致するクエリ設定にすでにインデックスヒントが含まれている場合、コマンド フィールド内のインデックスヒントを無視します。

    インデックスのヒントはクエリシェイプには影響しません。

    ヒントとクエリ設定の詳細については、「クエリ設定の構文」を参照してください。

$natural

$naturalcursor.hint()を と組み合わせて使用し、コレクションスキャンを実行すると、自然な順序でドキュメントが返されます。

使用方法については、コレクションスキャンの強制を参照してください。

注意

MongoDB7.0 $natural0より前では、 は 、NaN 、"X"、 など、誤った型値を受け入れます。-0.01 MongoDB.7 以降、0 1と 以外の値を-1 $naturalに渡すと、 MongoDB はエラーを返します。

次の例では、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 } )
このページを評価