重要
mongosh メソッド
This page documents a mongosh method. This is not the documentation for database commands or language-specific drivers, such as Node.js.
データベースコマンドについては、 collModコマンドを使用して設定されたindex.hiddenコレクション オプションを参照してください。
MongoDB API ドライバーについては、各言語の「MongoDB ドライバーのドキュメント」を参照してください。
定義
db.collection.hideIndex()クエリ プランナーで既存のインデックスを非表示にします。 クエリ プランナーから非表示のインデックスは、クエリプラン選択手順の一部として評価されません。
プランナーからインデックスを非表示にすることで、実際にインデックスを削除せずに、インデックスを削除した場合の潜在的な影響を評価できます。 影響がマイナスの場合は、削除されたインデックスを再度作成する必要がある代わりに、インデックスを再表示できます。 また、インデックスは非表示になっている間完全に維持されているため、非表示が解除されたらすぐに使用できるようになります。
詳細については、「非表示のインデックス 」を参照してください。
互換性
このメソッドは、次の環境でホストされている配置で使用できます。
- MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud
注意
This command is supported in all MongoDB Atlas clusters. For information on Atlas support for all commands, see Unsupported Commands.
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
db.collection.hideIndex(<index>)
パラメーター
The db.collection.hideIndex() method takes the following parameter:
Parameter | タイプ | 説明 |
|---|---|---|
| 文字列またはドキュメント | クエリ プランナーから非表示にするインデックスを指定します。 インデックスは、インデックス名またはインデックス仕様ドキュメントによって指定できます。 インデックス名またはインデックス仕様ドキュメントを見つけるには、 テキストインデックスを非表示にするには、インデックス名を指定します。 |
The db.collection.hideIndex() is a mongosh shell wrapper for the collMod command.
動作
機能の互換性バージョン
インデックスを非表示にするには、featureCompatibilityVersion を 7.0 以上に設定する必要があります。
制限事項
_idインデックスは非表示にできません。
インデックスの変更により統計がリセットされる
非表示でないインデックスを非表示にすると、その$indexStatsがリセットされます。
No-op
すでに非表示になっているインデックスを非表示にしても、インデックスには影響しません。 ただし、操作では空の oplog エントリが生成されます。
アクセス制御
配置で認証/承認が強制される場合は、コレクションのデータベースに対してcollMod特権が必要です。
組み込みロール dbAdmin は必要な特権を提供します。
例
次の例では、既存のインデックスを 非表示 にします。
まず、 db.collection.createIndex()を使用して非表示にすることなくインデックスを作成します。
db.restaurants.createIndex( { borough: 1, ratings: 1 } );
To hide the index, you can specify either the index key specification document or the index name to the db.collection.hideIndex() method. The following specifies the index name:
db.restaurants.hideIndex( "borough_1_ratings_1" );
確認するには、 restaurantsコレクションでdb.collection.getIndexes()を実行します。
db.restaurants.getIndexes();
この操作では、次の情報が返されます。
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" }, { "v" : 2, "key" : { "borough" : 1, "ratings" : 1 }, "name" : "borough_1_ratings_1", "hidden" : true } ]
hiddenインデックス オプション は、値がtrueの場合にのみ返されます。