Docs HomeMongoDB Manual

PlanCache.clearPlansByQuery()

Definition定义

PlanCache.clearPlansByQuery( <query>, <projection>, <sort> )

Clears the cached query plans for the specified query shape.清除指定查询形状的缓存查询计划。

Important

mongosh Method

This page documents a mongosh method. This is not the documentation for database commands or language-specific drivers, such as Node.js.

For the database command, see the planCacheClear command.

For MongoDB API drivers, refer to the language-specific MongoDB driver documentation.

For the legacy mongo shell documentation, refer to the documentation for the corresponding MongoDB Server release:

mongo shell v4.4

The method is only available from the plan cache object of a specific collection; i.e.该方法仅在特定集合的计划缓存对象中可用;即。

db.collection.getPlanCache().clearPlansByQuery( <query>, <projection>, <sort> )

The PlanCache.clearPlansByQuery() method accepts the following parameters:PlanCache.clearPlansByQuery()方法接受以下参数:

Parameter参数Type类型Description描述
querydocumentThe query predicate of the query shape. Only the structure of the predicate, including the field names, are significant to the shape; the values in the query predicate are insignificant.查询形状的查询谓词。只有谓词的结构,包括字段名称,对形状有意义;查询谓词中的值无关紧要。
projectiondocumentOptional.可选的。The projection associated with the query shape. Required if specifying the sort parameter.查询形状关联的投影。如果指定sort参数,则为必需项。
sortdocumentOptional.可选的。The sort associated with the query shape.查询形状关联的排序。

To see the query shapes for which cached query plans exist, see Examples.若要查看存在缓存查询计划的查询形状,请参阅示例

Required Access所需访问权限

On systems running with authorization, a user must have access that includes the planCacheWrite action.在使用authorization运行的系统上,用户必须具有包括planCacheWrite操作的访问权限。

Example实例

If a collection orders has the following query shape:如果集合orders具有以下查询形状:

{
"query" : { "qty" : { "$gt" : 10 } },
"sort" : { "ord_date" : 1 },
"projection" : { },
"queryHash" : "9AAD95BE" // Available starting in MongoDB 4.2
}

The following operation removes the query plan cached for the shape:以下操作将删除为形状缓存的查询计划:

db.orders.getPlanCache().clearPlansByQuery(
{ "qty" : { "$gt" : 10 } },
{ },
{ "ord_date" : 1 }
)
Tip

See also: 另请参阅: