文档菜单
文档首页
/
MongoDB 手册
/ / /

planCacheClear

本页内容

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

移除集合的缓存查询计划。指定一个计划缓存查询形状以移除该形状的缓存查询计划。省略计划缓存查询形状以清除所有缓存查询计划。

提示

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

辅助方法对mongosh用户来说很方便,但它们可能不会返回与数据库命令相同级别的信息。在不需要便利性或需要额外返回字段的情况下,请使用数据库命令。

从MongoDB 8.0开始,使用查询设置代替添加索引过滤器。从MongoDB 8.0开始,索引过滤器已被弃用。

查询设置比索引过滤器具有更多功能。此外,索引过滤器不持久,并且您不能轻松地为所有集群节点创建索引过滤器。要添加查询设置并查看示例,请参阅setQuerySettings

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

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

重要

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

该命令具有以下语法

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

该命令接受以下可选字段

字段
类型
描述
query
document
可选。计划缓存查询形状的查询谓词。仅谓词的结构,包括字段名称,对形状是重要的;查询谓词中的值是不重要的。
projection
document
可选。与计划缓存查询形状关联的投影。
sort
document
可选。与计划缓存查询形状关联的排序。
comment
any

可选。附加到此命令的用户提供的注释。一旦设置,此注释将显示在以下位置的此命令记录旁边

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

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

在运行 授权 的系统上,用户必须具有包括 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 集合的所有缓存查询计划

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

提示

另请参阅

返回

查询计划缓存