定義
PlanCache.clearPlansByQuery( <query>, <projection>, <sort> )指定されたプランキャッシュクエリシェイプのキャッシュされたクエリプランをクリアします。
重要
mongosh メソッド
このページでは、
mongoshメソッドについて説明します。ただし、データベースコマンドや Node.js などの言語固有のドライバーのドキュメントには該当しません。データベースコマンドについては、
planCacheClearコマンドを参照してください。MongoDB API ドライバーについては、各言語の MongoDB ドライバー ドキュメントを参照してください。
メソッドは、特定のコレクションの
plan cache objectからのみ使用できます。すなわちdb.collection.getPlanCache().clearPlansByQuery( <query>, <projection>, <sort> ) PlanCache.clearPlansByQuery()メソッドは次のパラメータを受け入れます。Parameterタイプ説明queryドキュメント
プランキャッシュクエリシェイプのクエリ述語。 フィールド名を含む述語の構造のみがシェイプにとって重要です。クエリ述部の値は重要ではない。
projectionドキュメント
任意。 プランキャッシュクエリシェイプに関連付けられたプロジェクション。
sortパラメータを指定する場合は必須です。sortドキュメント
任意。 プランキャッシュクエリシェイプに関連付けられた並べ替え。
どのキャッシュされたクエリプランが存在するクエリシェイプを確認するには、「例 」を参照してください。
MongoDB 8.0以降では、インデックス フィルターを追加する 代わりに、 クエリ設定を使用します 。 インデックス フィルターは MongoDB 8.0以降非推奨です。
クエリ設定は、インデックス フィルターよりも多くの機能を持ちます。 また、インデックス フィルターは永続的ではなく、すべてのクラスター ノードに対してインデックス フィルターを簡単に作成することはできません。 クエリ設定を追加して例を探すには、 setQuerySettingsを参照してください。
互換性
このメソッドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
必要なアクセス権
authorizationで実行されているシステムでは、ユーザーにplanCacheWriteアクションを含むアクセス権が必要です。
例
コレクションordersに次のプランキャッシュクエリシェイプがある場合:
{ "query" : { "qty" : { "$gt" : 10 } }, "sort" : { "ord_date" : 1 }, "projection" : { }, "planCacheShapeHash" : "9AAD95BE" }
警告
MongoDB 8.0 以降では、既存の queryHashフィールドはplanCacheShapeHash という名前の新しいフィールドに重複します。 以前のバージョンのMongoDBを使用している場合は、queryHashフィールドのみが表示されます。 今後のMongoDBバージョンでは、非推奨の queryHashフィールドが排除されます。代わりに planCacheShapeHashフィールドを使用する必要があります。
次の操作により、シェイプに対してキャッシュされたクエリプランが削除されます。
db.orders.getPlanCache().clearPlansByQuery( { "qty" : { "$gt" : 10 } }, { }, { "ord_date" : 1 } )
Tip
PlanCache.listQueryShapes()