planCacheClearFilters
定義
planCacheClearFilters
コレクションのインデックス フィルターを削除します。 インデックス フィルターはサーバープロセスの実行中のみ存在し、シャットダウン後は保持されませんが、
planCacheClearFilters
コマンドを使用して既存のインデックス フィルターをクリアすることもできます。特定のインデックスフィルターを削除するには、プランキャッシュクエリシェイプを指定します。 プランキャッシュクエリシェイプを省略すると、コレクションのすべてのインデックスフィルターがクリアされます。
クエリ設定
MongoDB 8.0以降では、インデックス フィルターを追加する 代わりに、 クエリ設定を使用します 。 インデックス フィルターは MongoDB 8.0以降非推奨です。
クエリ設定は、インデックス フィルターよりも多くの機能を持ちます。 また、インデックス フィルターは永続的ではなく、すべてのクラスター ノードに対してインデックス フィルターを簡単に作成することはできません。 クエリ設定を追加して例を探すには、 setQuerySettings
を参照してください。
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
重要
このコマンドは、M 0 、M 2 、M 5クラスターではサポートされていません。 詳細については、「サポートされていないコマンド 」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
このコマンドの構文は、次のとおりです。
db.runCommand( { planCacheClearFilters: <collection>, query: <query pattern>, sort: <sort specification>, projection: <projection specification>, collation: { <collation> }, comment: <any> } )
コマンドフィールド
コマンドには次のフィールドがあります:
フィールド | タイプ | 説明 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| string | インデックス フィルターを削除するコレクションの名前。 | ||||||||||
| ドキュメント | 任意。 削除するインデックス フィルターのクエリ述語。 省略した場合、コマンドはコレクションからすべてのインデックス フィルターをクリアします。
| ||||||||||
| ドキュメント | 任意。 削除するインデックス フィルターのソート(存在する場合)。 | ||||||||||
| ドキュメント | 任意。 削除するインデックス フィルターのプロジェクション(存在する場合)。 | ||||||||||
| ドキュメント | 操作に使用する照合を指定します。 照合を指定すると、大文字・小文字やアクセント記号など、文字列を比較するための言語独自のルールを指定できます。 照合オプションの構文は次のとおりです。
照合を指定する場合、 照合が指定されていなくても、コレクションにデフォルトの照合が設定されている場合( コレクションにも操作にも照合が指定されていない場合、MongoDB では以前のバージョンで使用されていた単純なバイナリ比較によって文字列が比較されます。 1 つの操作に複数の照合は指定できません。たとえば、フィールドごとに異なる照合を指定できません。また、ソートと検索を一度に実行する場合、検索とソートで別の照合を使用できません。 MongoDB 6.0 以降、インデックス フィルターは、以前は MongoDB 8.0以降では、インデックス フィルターを追加する 代わりに、 クエリ設定を使用します 。 インデックス フィルターは MongoDB 8.0以降非推奨です。 クエリ設定は、インデックス フィルターよりも多くの機能を持ちます。 また、インデックス フィルターは永続的ではなく、すべてのクラスター ノードに対してインデックス フィルターを簡単に作成することはできません。 クエリ設定を追加して例を探すには、 | ||||||||||
| any | 任意。このコマンドに添付するユーザー指定のコメント。設定すると、このコメントは以下の場所にこのコマンドの記録と合わせて表示されます。
コメントには、有効な BSON 型(string, integer, object, array など)を使用できます。 |
必要なアクセス権
ユーザーには、 planCacheIndexFilter
アクションを含むアクセス権が必要です。
例
コレクションの特定のインデックス フィルターをクリア
orders
コレクションには次のインデックス フィルターが含まれています。
{ "query" : { "status" : "A" }, "sort" : { "ord_date" : -1 }, "projection" : { }, "indexes" : [ { "status" : 1, "cust_id" : 1 } ] } { "query" : { "status" : "A" }, "sort" : { }, "projection" : { }, "indexes" : [ { "status" : 1, "cust_id" : 1 } ] } { "query": { "item": "Movie" }, "collation": { locale: "en_US" }, "indexes": [ { "item": 1, "order_date": 1 , "quantity": 1 } ] }
注意
MongoDB 6.0 以降、インデックス フィルターは、以前はplanCacheSetFilter
コマンドを使用して設定されていた照合を使用します。
MongoDB 8.0以降では、インデックス フィルターを追加する 代わりに、 クエリ設定を使用します 。 インデックス フィルターは MongoDB 8.0以降非推奨です。
クエリ設定は、インデックス フィルターよりも多くの機能を持ちます。 また、インデックス フィルターは永続的ではなく、すべてのクラスター ノードに対してインデックス フィルターを簡単に作成することはできません。 クエリ設定を追加して例を探すには、 setQuerySettings
を参照してください。
次のコマンドは、2 番目のインデックス フィルターのみを削除します。
db.runCommand( { planCacheClearFilters: "orders", query: { "status" : "A" } } )
query
述語の値は プランキャッシュクエリシェイプを決定する際に重要ではないため、次のコマンドによって 2 番目のインデックスフィルターも削除されます。
db.runCommand( { planCacheClearFilters: "orders", query: { "status" : "P" } } )
コレクションのすべてのインデックス フィルターのクリア
次の例では、 orders
コレクションのすべてのインデックス フィルターをクリアします。
db.runCommand( { planCacheClearFilters: "orders" } )
クエリと照合を含むクリアインデックス フィルター
次の例では、 Movie
のクエリとorders
コレクションの照合en_US
を含むインデックス フィルターをクリアします。
db.runCommand( { planCacheClearFilters: "orders", query: { item: "Movie" }, collation: { locale: "en_US" } } )