planCacheClearFilters
定义
planCacheClearFilters
删除集合上的索引筛选器。虽然索引筛选器仅在服务器进程期间存在,并且在关闭后不会持续存在,但您也可以使用
planCacheClearFilters
命令清除现有的索引筛选器。指定查询结构以删除特定索引筛选器。 省略查询结构可清除collection上的所有索引筛选器。
该命令具有以下语法:
db.runCommand( { planCacheClearFilters: <collection>, query: <query pattern>, sort: <sort specification>, projection: <projection specification>, comment: <any> } ) planCacheClearFilters
命令具有以下字段:字段类型说明planCacheClearFilters
字符串集合的名称。query
文档可选。 与要删除的筛选器关联的查询谓词。 如果省略,则清除集合中的所有筛选器。
query
谓词中的值对于确定查询结构无关紧要,因此查询中使用的值无需与使用planCacheListFilters
显示的值匹配。sort
文档可选。 与要删除的筛选器关联的排序(如果有)。projection
文档可选。与要删除的筛选器关联的投影(如果有)。comment
任何可选。用户提供的待附加到该命令的注释。设置后,该注释将与该命令的记录一起出现在以下位置:
mongod 日志消息,位于
attr.command.cursor.comment
字段中。command.comment
字段中的数据库分析器输出。currentOp
输出,在command.comment
字段。
注释可以是任何有效的 BSON 类型(字符串、整型、对象、数组等)。
必需的访问权限
用户必须具有包括planCacheIndexFilter
操作的访问权限。
举例
清除collection上的特定索引筛选器
orders
集合包含以下两个筛选器:
{ "query" : { "status" : "A" }, "sort" : { "ord_date" : -1 }, "projection" : { }, "indexes" : [ { "status" : 1, "cust_id" : 1 } ] } { "query" : { "status" : "A" }, "sort" : { }, "projection" : { }, "indexes" : [ { "status" : 1, "cust_id" : 1 } ] }
以下命令仅删除第二个索引筛选器:
db.runCommand( { planCacheClearFilters: "orders", query: { "status" : "A" } } )
由于query
谓词中的值对于确定查询结构无关紧要,因此以下命令也会删除第二个索引筛选器:
db.runCommand( { planCacheClearFilters: "orders", query: { "status" : "P" } } )
清除collection上的所有索引筛选器
以下示例清除orders
collection上的所有索引筛选器:
db.runCommand( { planCacheClearFilters: "orders" } )