定義
PlanCache.clearPlansByQuery( <query>, <projection>, <sort> )指定されたクエリシェイプのキャッシュされたクエリプランをクリアします。
重要
mongosh メソッド
このページでは、
mongoshメソッドについて説明します。ただし、データベースコマンドや Node.js などの言語固有のドライバーのドキュメントには該当しません。データベースコマンドについては、
planCacheClearコマンドを参照してください。MongoDB API ドライバーについては、各言語の MongoDB ドライバー ドキュメントを参照してください。
メソッドは、特定のコレクションの
plan cache objectからのみ使用できます。すなわちdb.collection.getPlanCache().clearPlansByQuery( <query>, <projection>, <sort>, <collation> ) PlanCache.clearPlansByQuery()メソッドは次のパラメータを受け入れます。Parameterタイプ説明queryドキュメント
クエリシェイプのクエリ述語。 フィールド名を含む述語の構造のみがシェイプにとって重要です。クエリ述部の値は重要ではない。
projectionドキュメント
任意。 クエリシェイプに関連付けられたプロジェクション。
sortパラメータを指定する場合は必須です。sortドキュメント
collationドキュメント
任意。操作に使用する照合を指定します。
照合を指定すると、大文字・小文字やアクセント記号など、文字列を比較するための言語独自のルールを指定できます。
照合オプションの構文は次のとおりです。
collation: { locale: <string>, caseLevel: <boolean>, caseFirst: <string>, strength: <int>, numericOrdering: <boolean>, alternate: <string>, maxVariable: <string>, backwards: <boolean> } 照合を指定する場合、
localeフィールドは必須ですが、その他の照合フィールドはすべて任意です。フィールドの説明については、照合ドキュメントを参照してください。照合が指定されていなくても、コレクションにデフォルトの照合が設定されている場合(
db.createCollection()を参照)には、コレクションの照合が使用されます。コレクションにも操作にも照合が指定されていない場合、MongoDB では以前のバージョンで使用されていた単純なバイナリ比較によって文字列が比較されます。
1 つの操作に複数の照合は指定できません。たとえば、フィールドごとに異なる照合を指定できません。また、ソートと検索を一度に実行する場合、検索とソートで別の照合を使用できません。
どのキャッシュされたクエリプランが存在するクエリシェイプを確認するには、「例 」を参照してください。
必要なアクセス権
authorizationで実行されているシステムでは、ユーザーにplanCacheWriteアクションを含むアクセス権が必要です。
例
コレクションordersが次のクエリシェイプを持つ場合:
{ "query" : { "qty" : { "$gt" : 10 } }, "sort" : { "ord_date" : 1 }, "collation" : { locale : "fr" }, "projection" : { }, "queryHash" : "9AAD95BE" }
次の操作により、シェイプに対してキャッシュされたクエリプランが削除されます。
db.orders.getPlanCache().clearPlansByQuery( { "qty" : { "$gt" : 10 } }, { }, { "ord_date" : 1 }, { locale: "fr" } )
Tip
PlanCache.listQueryShapes()