ANNOUNCEMENT: Voyage AI joins MongoDB to power more accurate and trustworthy AI applications on Atlas.
Learn more
Docs Menu

db.collection.hideIndex()

db.collection.hideIndex()

重要

mongosh メソッド

このページでは、mongosh メソッドについて記載しています。ただし、データベースコマンドや Node.js などの言語固有のドライバーのドキュメントには該当しません

データベースコマンドについては、 collModコマンドを使用して設定されたindex.hiddenコレクション オプションを参照してください。

MongoDB API ドライバーについては、各言語の MongoDB ドライバー ドキュメントを参照してください。

クエリ プランナーで既存のインデックスを非表示にします。 クエリ プランナーから非表示のインデックスは、クエリプラン選択手順の一部として評価されません。

プランナーからインデックスを非表示にすることで、実際にインデックスを削除せずに、インデックスを削除した場合の潜在的な影響を評価できます。 影響がマイナスの場合は、削除されたインデックスを再度作成する必要がある代わりに、インデックスを再表示できます。 また、インデックスは非表示になっている間完全に維持されているため、非表示が解除されたらすぐに使用できるようになります。

詳細については、「非表示のインデックス 」を参照してください。

このメソッドは、次の環境でホストされている配置で使用できます。

  • MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです

注意

このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。

  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

db.collection.hideIndex(<index>)

db.collection.hideIndex()メソッドでは、次のパラメーターが使われます。

Parameter
タイプ
説明

index

文字列またはドキュメント

クエリ プランナーから非表示にするインデックスを指定します。 インデックスは、インデックス名またはインデックス仕様ドキュメントによって指定できます。

Tip

インデックス名またはインデックス仕様ドキュメントを見つけるには、 db.collection.getIndexes()メソッドを使用します。

テキストインデックスを非表示にするには、インデックス名を指定します。

は、db.collection.hideIndex() コマンドのmongosh shellcollMod ラッパーです。

インデックスを非表示にするには、featureCompatibilityVersion5.0 以上に設定する必要があります。

_idインデックスは非表示にできません。

非表示でないインデックスを非表示にすると、その$indexStatsがリセットされます。

すでに非表示になっているインデックスを非表示にしても、インデックスには影響しません。 ただし、操作では空の 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の場合にのみ返されます。

Tip

以下も参照してください。