planCacheClear
定義
planCacheClear
コレクションのキャッシュされたクエリプランを排除します。 プランキャッシュクエリシェイプを指定して、そのシェイプのキャッシュされたクエリプランを削除します。 すべてのキャッシュされたクエリプランをクリアするには、プランキャッシュクエリシェイプを省略します。
Tip
mongosh
では、このコマンドはPlanCache.clear()
およびPlanCache.clearPlansByQuery()
ヘルパー メソッドを通じて実行することもできます。ヘルパー メソッドは
mongosh
ユーザーには便利ですが、データベースコマンドと同じレベルの情報は返されない可能性があります。 便宜上必要ない場合、または追加の戻りフィールドが必要な場合は、 データベースコマンドを使用します。
クエリ設定
MongoDB 8.0以降では、インデックス フィルターを追加する 代わりに、 クエリ設定を使用します 。 インデックス フィルターは MongoDB 8.0以降非推奨です。
クエリ設定は、インデックス フィルターよりも多くの機能を持ちます。 また、インデックス フィルターは永続的ではなく、すべてのクラスター ノードに対してインデックス フィルターを簡単に作成することはできません。 クエリ設定を追加して例を探すには、 setQuerySettings
を参照してください。
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
重要
このコマンドは、M 0 、M 2 、M 5クラスターではサポートされていません。 詳細については、「サポートされていないコマンド 」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
このコマンドの構文は、次のとおりです。
db.runCommand( { planCacheClear: <collection>, query: <query>, sort: <sort>, projection: <projection>, comment: <any> } )
コマンドフィールド
コマンドは、次の任意フィールドがあります。
フィールド | タイプ | 説明 |
---|---|---|
| ドキュメント | 任意。 プランキャッシュクエリシェイプのクエリ述語。 フィールド名を含む述語の構造のみがシェイプにとって重要です。クエリ述部の値は重要ではない。 |
| ドキュメント | 任意。 プランキャッシュクエリシェイプに関連付けられたプロジェクション。 |
| ドキュメント | 任意。 プランキャッシュクエリシェイプに関連付けられた並べ替え。 |
| any | 任意。このコマンドに添付するユーザー指定のコメント。設定すると、このコメントは以下の場所にこのコマンドの記録と合わせて表示されます。
コメントには、有効な BSON 型(string, integer, object, array など)を使用できます。 |
どのキャッシュされたクエリプランが存在するクエリシェイプを確認するには、「例 」を参照してください。
必要なアクセス権
authorization
で実行されているシステムでは、ユーザーにplanCacheWrite
アクションを含むアクセス権が必要です。
例
プラン キャッシュ クエリシェイプのキャッシュされたプランのクリア
コレクションorders
に次のプランキャッシュクエリシェイプがある場合:
{ "query" : { "qty" : { "$gt" : 10 } }, "sort" : { "ord_date" : 1 }, "projection" : { }, "planCacheShapeHash" : "9AAD95BE" }
警告
MongoDB 8.0以降、既存のqueryHash
フィールドの名前がplanCacheShapeHash
に変更されます。 以前のバージョンの MongoDB を使用している場合は、 planCacheShapeHash
ではなくqueryHash
が表示されます。
次の操作により、シェイプに対してキャッシュされたクエリプランがクリアされます。
db.runCommand( { planCacheClear: "orders", query: { "qty" : { "$gt" : 10 } }, sort: { "ord_date" : 1 } } )
コレクションのすべてのキャッシュされたプランのクリア
次の例では、 orders
コレクションのすべてのキャッシュされたクエリプランをクリアします。
db.runCommand( { planCacheClear: "orders" } )