AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

planCacheClear(データベースコマンド)

planCacheClear

コレクションのキャッシュされたクエリプランを排除します。 プランキャッシュクエリシェイプを指定して、そのシェイプのキャッシュされたクエリプランを削除します。 すべてのキャッシュされたクエリプランをクリアするには、プランキャッシュクエリシェイプを省略します。

Tip

In mongosh, this command can also be run through the PlanCache.clear() and PlanCache.clearPlansByQuery() helper methods.

Helper methods are convenient for mongosh users, 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>
}
)

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

フィールド
タイプ
説明

query

ドキュメント

任意。 プランキャッシュクエリシェイプのクエリ述語。 フィールド名を含む述語の構造のみがシェイプにとって重要です。クエリ述部の値は重要ではない。

projection

ドキュメント

任意。 プランキャッシュクエリシェイプに関連付けられたプロジェクション。

sort

ドキュメント

任意。 プランキャッシュクエリシェイプに関連付けられた並べ替え。

comment

any

任意。このコマンドに添付するユーザー指定のコメント。設定すると、このコメントは以下の場所にこのコマンドの記録と合わせて表示されます。

コメントには、有効な BSON 型(string, integer, object, array など)を使用できます。

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" : { },
"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"
}
)