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

PlanCache.clearPlansByQuery()

在此页面上

  • 定义
  • 兼容性
  • 必需的访问权限
  • 例子
PlanCache.clearPlansByQuery( <query>, <projection>, <sort> )

清除指定计划缓存查询结构的缓存查询计划。

重要

mongosh 方法

本页面提供 mongosh 方法的相关信息。这不是数据库命令或特定语言驱动程序(例如 Node.js)的相关文档。

有关数据库命令,请参阅 planCacheClear 命令。

如需了解 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。

该方法只能从特定集合的plan cache object获得;即

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

PlanCache.clearPlansByQuery() 方法接受以下参数:

Parameter
类型
说明

query

文档

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

projection

文档

可选。 与计划缓存查询结构关联的投影。 如果指定了sort参数,则为必填项。

sort

文档

可选。 与计划缓存查询结构关联的排序。

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

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

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

此方法可用于以下环境中托管的部署:

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

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

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

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

警告

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

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

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

提示

另请参阅:

后退

PlanCache.clear