planCacheClear
定义
planCacheClear
删除集合的缓存查询计划。 指定查询结构以删除该结构的缓存查询计划。 省略查询结构以清除所有缓存的查询计划。
提示
在
mongosh
中,该命令也可以通过PlanCache.clear()
和PlanCache.clearPlansByQuery()
辅助方法运行。辅助方法对
mongosh
用户来说很方便,但它们返回的信息级别可能与数据库命令不同。如果不追求方便或需要额外的返回字段,请使用数据库命令。
兼容性
此命令可用于以下环境中托管的部署:
MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
重要
M 0 、M 2和 M 5集群不支持此命令。 有关更多信息,请参阅不支持的命令。
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
语法
该命令具有以下语法:
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" : { }, "queryHash" : "9AAD95BE" }
以下操作会清除为该形状缓存的查询计划:
db.runCommand( { planCacheClear: "orders", query: { "qty" : { "$gt" : 10 } }, sort: { "ord_date" : 1 } } )
清除collection的所有缓存计划
orders
以下示例清除collection的所有缓存查询计划:
db.runCommand( { planCacheClear: "orders" } )