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

planCacheClearFilters

項目一覧

  • 定義
  • 互換性
  • 構文
  • コマンドフィールド
  • 必要なアクセス権
planCacheClearFilters

コレクションのインデックス フィルターを削除します。 インデックス フィルターはサーバープロセスの実行中のみ存在し、シャットダウン後は保持されませんが、 planCacheClearFiltersコマンドを使用して既存のインデックス フィルターをクリアすることもできます。

特定のインデックス フィルターを削除するには、クエリシェイプを指定します。 クエリシェイプを省略すると、コレクションのすべてのインデックス フィルターがクリアされます。

このコマンドは、次の環境でホストされている配置で使用できます。

  • MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです

重要

このコマンドは、M 0 、M 2 、M 5クラスターではサポートされていません。 詳細については、「サポートされていないコマンド 」を参照してください。

  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

このコマンドの構文は、次のとおりです。

db.runCommand(
{
planCacheClearFilters: <collection>,
query: <query pattern>,
sort: <sort specification>,
projection: <projection specification>,
collation: { <collation> },
comment: <any>
}
)

コマンドには次のフィールドがあります:

フィールド
タイプ
説明
planCacheClearFilters
string
インデックス フィルターを削除するコレクションの名前。
query
ドキュメント

任意。 削除するインデックス フィルターのクエリ述語。 省略した場合、コマンドはコレクションからすべてのインデックス フィルターをクリアします。

query述語の値は次のことを行いません。

sort
ドキュメント
任意。 削除するインデックス フィルターのソート(存在する場合)。
projection
ドキュメント
任意。 削除するインデックス フィルターのプロジェクション(存在する場合)。
collation
ドキュメント

操作に使用する照合を指定します。

照合を指定すると、大文字・小文字やアクセント記号など、文字列を比較するための言語独自のルールを指定できます。

照合オプションの構文は次のとおりです。

collation: {
locale: <string>,
caseLevel: <boolean>,
caseFirst: <string>,
strength: <int>,
numericOrdering: <boolean>,
alternate: <string>,
maxVariable: <string>,
backwards: <boolean>
}

照合を指定する場合、locale フィールドは必須ですが、その他の照合フィールドはすべて任意です。フィールドの説明については、照合ドキュメントを参照してください。

照合が指定されていなくても、コレクションにデフォルトの照合が設定されている場合(db.createCollection() を参照)には、コレクションの照合が使用されます。

コレクションにも操作にも照合が指定されていない場合、MongoDB では以前のバージョンで使用されていた単純なバイナリ比較によって文字列が比較されます。

1 つの操作に複数の照合は指定できません。たとえば、フィールドごとに異なる照合を指定できません。また、ソートと検索を一度に実行する場合、検索とソートで別の照合を使用できません。

MongoDB 6.0 以降、インデックス フィルターは、以前はplanCacheSetFilter コマンドを使用して設定されていた照合を使用します。

comment
any

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

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

ユーザーには、 planCacheIndexFilterアクションを含むアクセス権が必要です。

ordersコレクションには次のインデックス フィルターが含まれています。

{
"query" : { "status" : "A" },
"sort" : { "ord_date" : -1 },
"projection" : { },
"indexes" : [ { "status" : 1, "cust_id" : 1 } ]
}
{
"query" : { "status" : "A" },
"sort" : { },
"projection" : { },
"indexes" : [ { "status" : 1, "cust_id" : 1 } ]
}
{
"query": { "item": "Movie" },
"collation": { locale: "en_US" },
"indexes": [ { "item": 1, "order_date": 1 , "quantity": 1 } ]
}

注意

MongoDB 6.0 以降、インデックス フィルターは、以前はplanCacheSetFilter コマンドを使用して設定されていた照合を使用します。

次のコマンドは、2 番目のインデックス フィルターのみを削除します。

db.runCommand(
{
planCacheClearFilters: "orders",
query: { "status" : "A" }
}
)

query述語の値はクエリシェイプの決定には重要ではないため、次のコマンドによって 2 番目のインデックス フィルターも削除されます。

db.runCommand(
{
planCacheClearFilters: "orders",
query: { "status" : "P" }
}
)

次の例では、 ordersコレクションのすべてのインデックス フィルターをクリアします。

db.runCommand(
{
planCacheClearFilters: "orders"
}
)

次の例では、 Movieのクエリとordersコレクションの照合en_USを含むインデックス フィルターをクリアします。

db.runCommand(
{
planCacheClearFilters: "orders",
query: { item: "Movie" },
collation: { locale: "en_US" }
}
)

Tip

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

戻る

planCacheClear