Docs Menu
Docs Home
/
MongoDB Manual
/ / /

planCacheClearFilters

On this page

  • Definition
  • Syntax
  • Command Fields
  • Required Access
  • Examples
planCacheClearFilters

Removes index filters on a collection. Although index filters only exist for the duration of the server process and do not persist after shutdown, you can also clear existing index filters with the planCacheClearFilters command.

Specify the query shape to remove a specific index filter. Omit the query shape to clear all index filters on a collection.

The command has the following syntax:

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

The command has the following fields:

Field
Type
Description
planCacheClearFilters
string
The name of the collection to remove the index filters from.
query
document

Optional. The query predicate for the index filter to remove. If omitted, the command clears all index filters from the collection.

The values in the query predicate do not:

  • Determine the query shape.

  • Need to match the values returned by planCacheListFilters.

sort
document
Optional. The sort for the index filter to remove, if any.
projection
document
Optional. The projection for the index filter to remove, if any.
collation
document

Specifies the collation to use for the operation.

Collation allows users to specify language-specific rules for string comparison, such as rules for lettercase and accent marks.

The collation option has the following syntax:

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

When specifying collation, the locale field is mandatory; all other collation fields are optional. For descriptions of the fields, see Collation Document.

If the collation is unspecified but the collection has a default collation (see db.createCollection()), the operation uses the collation specified for the collection.

If no collation is specified for the collection or for the operations, MongoDB uses the simple binary comparison used in prior versions for string comparisons.

You cannot specify multiple collations for an operation. For example, you cannot specify different collations per field, or if performing a find with a sort, you cannot use one collation for the find and another for the sort.

Starting in MongoDB 6.0, an index filter uses the collation previously set using the planCacheSetFilter command.

comment
any

Optional.

A user-provided comment to attach to this command. Once set, this comment appears alongside records of this command in the following locations:

A comment can be any valid BSON type (string, integer, object, array, etc).

New in version 4.4.

A user must have access that includes the planCacheIndexFilter action.

The orders collection contains the following index filters:

{
"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 } ]
}

Note

Starting in MongoDB 6.0, an index filter uses the collation previously set using the planCacheSetFilter command.

The following command removes the second index filter only:

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

Because the values in the query predicate are insignificant in determining the query shape, the following command would also remove the second index filter:

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

The following example clears all index filters on the orders collection:

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

The following example clears the index filter containing the query on Movie and the collation en_US for the orders collection:

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

Tip

See also:

Back

planCacheClear