db.collection.hideIndex()
定義
db.collection.hideIndex()
重要
mongosh メソッド
このページでは、
mongosh
メソッドについて説明します。ただし、データベースコマンドや Node.js などの言語固有のドライバーのドキュメントには該当しません。データベースコマンドについては、
collMod
コマンドを使用して設定されたindex.hidden
コレクション オプションを参照してください。MongoDB API ドライバーについては、各言語の MongoDB ドライバー ドキュメントを参照してください。
クエリ プランナーで既存のインデックスを非表示にします。 クエリ プランナーから非表示のインデックスは、クエリプラン選択手順の一部として評価されません。
プランナーからインデックスを非表示にすることで、実際にインデックスを削除せずに、インデックスを削除した場合の潜在的な影響を評価できます。 影響がマイナスの場合は、削除されたインデックスを再度作成する必要がある代わりに、インデックスを再表示できます。 また、インデックスは非表示になっている間完全に維持されているため、非表示が解除されたらすぐに使用できるようになります。
詳細については、「非表示のインデックス 」を参照してください。
構文
db.collection.hideIndex(<index>)
パラメーター
db.collection.hideIndex()
メソッドでは、次のパラメーターが使われます。
Parameter | タイプ | 説明 |
---|---|---|
index | 文字列またはドキュメント | クエリ プランナーから非表示にするインデックスを指定します。 インデックスは、インデックス名またはインデックス仕様ドキュメントによって指定できます。 インデックス名またはインデックス仕様ドキュメントを見つけるには、 テキストインデックスを非表示にするには、インデックス名を指定します。 |
は、db.collection.hideIndex()
コマンドのmongosh
shellcollMod
ラッパーです。
動作
機能の互換性バージョン
インデックスを非表示にするには、featureCompatibilityVersion を 5.0
以上に設定する必要があります。
制限事項
_id
インデックスは非表示にできません。
インデックスの変更により統計がリセットされる
非表示でないインデックスを非表示にすると、その$indexStats
がリセットされます。
No-op
すでに非表示になっているインデックスを非表示にしても、インデックスには影響しません。 ただし、操作では空の oplog エントリが生成されます。
アクセス制御
配置で認証/承認が強制される場合は、コレクションのデータベースに対してcollMod
特権が必要です。
組み込みロール dbAdmin
は必要な特権を提供します。
例
次の例では、既存のインデックスを 非表示 にします。
まず、 db.collection.createIndex()
を使用して非表示にすることなくインデックスを作成します。
db.restaurants.createIndex( { borough: 1, ratings: 1 } );
インデックスを非表示にするには、インデックスキー仕様ドキュメントまたはインデックス名のいずれかをdb.collection.hideIndex()
メソッドに指定します。 以下は、インデックス名を指定します。
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
の場合にのみ返されます。