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
。
必需的访问权限
在使用 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 } )