Docs 菜单
Docs 主页
/ /

planCacheClear(数据库命令)

planCacheClear

删除集合的缓存查询计划。 指定查询结构以删除该结构的缓存查询计划。 省略查询结构以清除所有缓存的查询计划。

提示

mongosh中,该命令也可以通过PlanCache.clear()PlanCache.clearPlansByQuery()辅助方法运行。

辅助方法对 mongosh 用户来说很方便,但它们返回的信息级别可能与数据库命令不同。如果不追求方便或需要额外的返回字段,请使用数据库命令。

此命令可用于以下环境中托管的部署:

  • MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务

重要

M0 和 Flex 集群不支持此命令。有关更多信息,请参阅不支持的命令。

该命令具有以下语法:

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

该命令采用以下可选字段:

字段
类型
说明

query

文档

可选。 查询谓词的查询结构。只有谓词的结构(包括字段名称)对形状重要;查询谓词中的值无关紧要。

projection

文档

sort

文档

comment

any

可选。用户提供的待附加到该命令的注释。设置后,该注释将与该命令的记录一起出现在以下位置:

注释可以是任何有效的 BSON 类型(字符串、整型、对象、数组等)。

collation

文档

可选。指定用于操作的排序规则

排序规则允许用户为字符串比较指定特定于语言的规则,例如字母大小写和重音符号规则。

排序规则选项的语法如下:

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

指定排序规则时,locale 字段为必填字段;所有其他排序规则字段均为可选字段。有关字段的说明,请参阅排序规则文档

如果未指定排序规则,但集合具有默认排序规则(请参阅 db.createCollection()),则操作将使用为集合指定的排序规则。

如果没有为收集或操作指定排序规则,MongoDB 将使用先前版本中使用的简单二进制比较来进行字符串比较。

您不能为一个操作指定多个排序规则。例如,您不能为每个字段指定不同的排序规则,或者如果执行带排序的查找,则不能使用一种排序规则进行查找而另一种排序规则进行排序。

要查看存在缓存查询计划的查询结构,请参阅示例。

在使用 authorization 运行的系统中,用户必须拥有包括 planCacheWrite 操作在内的访问权限。

如果集合orders具有以下查询结构:

{
"query" : { "qty" : { "$gt" : 10 } },
"sort" : { "ord_date" : 1 },
"collation" : { locale : "fr" },
"projection" : { },
"queryHash" : "9AAD95BE"
}

以下操作会清除为该形状缓存的查询计划:

db.runCommand(
{
planCacheClear: "orders",
query: { "qty" : { "$gt" : 10 } },
sort: { "ord_date" : 1 },
collation: { locale : "fr" }
}
)

orders以下示例清除collection的所有缓存查询计划:

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

后退

数据库命令

在此页面上