planCacheClearFilters
定义
planCacheClearFilters
删除集合上的索引筛选器。 虽然索引筛选器仅在服务器进程期间存在,并且在关闭后不会持续存在,但您也可以使用
planCacheClearFilters
命令清除现有的索引筛选器。指定查询结构以删除特定索引筛选器。 省略查询结构可清除collection上的所有索引筛选器。
兼容性
此命令可用于以下环境中托管的部署:
MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
重要
M 0 、M 2和 M 5集群不支持此命令。 有关更多信息,请参阅不支持的命令。
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
语法
该命令具有以下语法:
db.runCommand( { planCacheClearFilters: <collection>, query: <query pattern>, sort: <sort specification>, projection: <projection specification>, comment: <any> } )
planCacheClearFilters
命令具有以下字段:
字段 | 类型 | 说明 |
---|---|---|
planCacheClearFilters | 字符串 | 集合的名称。 |
query | 文档 | 可选。 与要删除的筛选器关联的查询谓词。 如果省略,则清除集合中的所有筛选器。
|
sort | 文档 | 可选。 与要删除的筛选器关联的排序(如果有)。 |
projection | 文档 | 可选。 与要删除的过滤关联的投影(如果有)。 |
comment | any | 可选。用户提供的待附加到该命令的注释。设置后,该注释将与该命令的记录一起出现在以下位置:
注释可以是任何有效的 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" } )