定义
PlanCache.clearPlansByQuery( <query>, <projection>, <sort> )清除指定查询结构的缓存查询计划。
重要
mongosh 方法
本页面提供
mongosh方法的相关信息。这不是数据库命令或特定语言驱动程序(例如 Node.js)的相关文档。有关数据库命令,请参阅
planCacheClear命令。如需了解 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。
该方法只能从特定集合的
plan cache object获得;即db.collection.getPlanCache().clearPlansByQuery( <query>, <projection>, <sort>, <collation> ) PlanCache.clearPlansByQuery()方法接受以下参数:Parameter类型说明query文档
查询查询结构的查询谓词。只有谓词的结构(包括字段名称)对形状重要;查询谓词中的值无关紧要。
projection文档
可选。 与查询结构关联的投影。如果指定
sort参数,则为必填项。sort文档
可选。 与查询结构关联的排序。
collation文档
可选。指定用于操作的排序规则。
排序规则允许用户为字符串比较指定特定于语言的规则,例如字母大小写和重音符号规则。
排序规则选项的语法如下:
collation: { locale: <string>, caseLevel: <boolean>, caseFirst: <string>, strength: <int>, numericOrdering: <boolean>, alternate: <string>, maxVariable: <string>, backwards: <boolean> } 指定排序规则时,
locale字段为必填字段;所有其他排序规则字段均为可选字段。有关字段的说明,请参阅排序规则文档。如果未指定排序规则,但集合具有默认排序规则(请参阅
db.createCollection()),则操作将使用为集合指定的排序规则。如果没有为收集或操作指定排序规则,MongoDB 将使用先前版本中使用的简单二进制比较来进行字符串比较。
您不能为一个操作指定多个排序规则。例如,您不能为每个字段指定不同的排序规则,或者如果执行带排序的查找,则不能使用一种排序规则进行查找而另一种排序规则进行排序。
要查看存在缓存查询计划的查询结构,请参阅示例。
必需的访问权限
在使用 authorization 运行的系统中,用户必须拥有包括 planCacheWrite 操作在内的访问权限。
例子
如果集合orders具有以下查询结构:
{ "query" : { "qty" : { "$gt" : 10 } }, "sort" : { "ord_date" : 1 }, "collation" : { locale : "fr" }, "projection" : { }, "queryHash" : "9AAD95BE" }
以下操作会删除为该形状缓存的查询计划:
db.orders.getPlanCache().clearPlansByQuery( { "qty" : { "$gt" : 10 } }, { }, { "ord_date" : 1 }, { locale: "fr" } )
提示
PlanCache.listQueryShapes()