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

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

cursor.hint(index)

重要

mongosh メソッド

This page documents a mongosh method. 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 $text expression, you cannot use hint() 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.

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

  • クラスタークエリ設定は、 コマンドフィールドとして渡されるクエリ設定やインデックスヒントよりも優先されます。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 } )
このページを評価