Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

planCacheClear

在此页面上

  • 定义
  • 兼容性
  • 语法
  • 命令字段
  • 必需的访问权限
  • 示例
planCacheClear

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

提示

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

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

从 MongoDB 8.0开始,使用查询设置而不是添加索引筛选器。 从 MongoDB 8.0开始,索引筛选器已弃用。

查询设置的功能比索引筛选器更多。 此外,索引筛选器不是持久性的,您无法轻松地为所有集群节点创建索引筛选器。 要添加查询设置并探索示例,请参阅setQuerySettings

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

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

重要

M 0 、M 2和 M 5集群不支持此命令。 有关更多信息,请参阅不支持的命令。

该命令具有以下语法:

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

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

字段
类型
说明
query
文档
可选。 计划缓存查询结构的查询谓词。 只有谓词的结构(包括字段名称)对形状重要;查询谓词中的值无关紧要。
projection
文档
可选。 与计划缓存查询结构关联的投影。
sort
文档
可选。 与计划缓存查询结构关联的排序。
comment
any

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

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

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

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

如果集合orders具有以下计划缓存查询结构:

{
"query" : { "qty" : { "$gt" : 10 } },
"sort" : { "ord_date" : 1 },
"projection" : { },
"planCacheShapeHash" : "9AAD95BE"
}

警告

从 MongoDB 8.0 开始,预先存在的 queryHash 字段被重命名为 planCacheShapeHash。如果正在使用早期版本的 MongoDB,您将看到 queryHash 而不是 planCacheShapeHash

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

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

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

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

提示

另请参阅:

后退

查询计划缓存