Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

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>
}
)

コマンドは、次の任意フィールドがあります。

フィールド
タイプ
説明
query
ドキュメント
任意。 プランキャッシュクエリシェイプのクエリ述語。 フィールド名を含む述語の構造のみがシェイプにとって重要です。クエリ述部の値は重要ではない。
projection
ドキュメント
任意。 プランキャッシュクエリシェイプに関連付けられたプロジェクション。
sort
ドキュメント
任意。 プランキャッシュクエリシェイプに関連付けられた並べ替え。
comment
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"
}
)

Tip

以下も参照してください。

戻る

クエリプラン キャッシュ