定義
planCacheClearコレクションのキャッシュされたクエリプランを排除します。 プランキャッシュクエリシェイプを指定して、そのシェイプのキャッシュされたクエリプランを削除します。 すべてのキャッシュされたクエリプランをクリアするには、プランキャッシュクエリシェイプを省略します。
Tip
In
mongosh, this command can also be run through thePlanCache.clear()andPlanCache.clearPlansByQuery()helper methods.Helper methods are convenient for
mongoshusers, but they may not return the same level of information as database commands. In cases where the convenience is not needed or the additional return fields are required, use the database command.
クエリ設定
MongoDB 8.0以降では、インデックス フィルターを追加する 代わりに、 クエリ設定を使用します 。 インデックス フィルターは MongoDB 8.0以降非推奨です。
クエリ設定は、インデックス フィルターよりも多くの機能を持ちます。 また、インデックス フィルターは永続的ではなく、すべてのクラスター ノードに対してインデックス フィルターを簡単に作成することはできません。 クエリ設定を追加して例を探すには、 setQuerySettingsを参照してください。
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
- MongoDB Atlas はクラウドでの MongoDB 配置のための完全管理サービスです
重要
このコマンドは、M0 および Flex クラスターではサポートされていません。詳細については、サポートされていないコマンド を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
このコマンドの構文は、次のとおりです。
db.runCommand( { planCacheClear: <collection>, query: <query>, sort: <sort>, collation: <collation>, projection: <projection>, comment: <any> } )
コマンドフィールド
コマンドは、次の任意フィールドがあります。
フィールド | タイプ | 説明 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ドキュメント | 任意。 プランキャッシュクエリシェイプのクエリ述語。 フィールド名を含む述語の構造のみがシェイプにとって重要です。クエリ述部の値は重要ではない。 | ||||||||||
| ドキュメント | 任意。 プランキャッシュクエリシェイプに関連付けられたプロジェクション。 | ||||||||||
| ドキュメント | 任意。 プランキャッシュクエリシェイプに関連付けられた並べ替え。 | ||||||||||
| any | 任意。このコマンドに添付するユーザー指定のコメント。設定すると、このコメントは以下の場所にこのコマンドの記録と合わせて表示されます。
コメントには、有効な BSON 型(string, integer, object, array など)を使用できます。 | ||||||||||
| ドキュメント | 任意。操作に使用する照合を指定します。 照合を指定すると、大文字・小文字やアクセント記号など、文字列を比較するための言語独自のルールを指定できます。 照合オプションの構文は次のとおりです。 照合を指定する場合、 照合が指定されていなくても、コレクションにデフォルトの照合が設定されている場合( コレクションにも操作にも照合が指定されていない場合、MongoDB では以前のバージョンで使用されていた単純なバイナリ比較によって文字列が比較されます。 1 つの操作に複数の照合は指定できません。たとえば、フィールドごとに異なる照合を指定できません。また、ソートと検索を一度に実行する場合、検索とソートで別の照合を使用できません。 |
どのキャッシュされたクエリプランが存在するクエリシェイプを確認するには、「例 」を参照してください。
必要なアクセス権
authorizationで実行されているシステムでは、ユーザーにplanCacheWriteアクションを含むアクセス権が必要です。
例
プラン キャッシュ クエリシェイプのキャッシュされたプランのクリア
コレクションordersに次のプランキャッシュクエリシェイプがある場合:
{ "query" : { "qty" : { "$gt" : 10 } }, "sort" : { "ord_date" : 1 }, "collation" : { locale : "fr" }, "projection" : { }, "planCacheShapeHash" : "9AAD95BE" }
警告
MongoDB 8.0 以降では、既存の queryHashフィールドはplanCacheShapeHash という名前の新しいフィールドに重複します。 以前のバージョンのMongoDBを使用している場合は、queryHashフィールドのみが表示されます。 今後のMongoDBバージョンでは、非推奨の queryHashフィールドが排除されます。代わりに planCacheShapeHashフィールドを使用する必要があります。
次の操作により、シェイプに対してキャッシュされたクエリプランがクリアされます。
db.runCommand( { planCacheClear: "orders", query: { "qty" : { "$gt" : 10 } }, sort: { "ord_date" : 1 }, collation: { locale : "fr" } } )
コレクションのすべてのキャッシュされたプランのクリア
次の例では、 ordersコレクションのすべてのキャッシュされたクエリプランをクリアします。
db.runCommand( { planCacheClear: "orders" } )