On this page
planCacheClearFilters
在本页面
Definition
planCacheClearFilters
- 2.6 版的新功能。
删除集合上的index filters。尽管索引过滤器仅在服务器进程期间存在,并且不会在关闭后持续存在,但是您也可以使用planCacheClearFilters命令清除现有的索引过滤器。
指定query shape以删除特定的索引过滤器。省略查询形状以清除集合上的所有索引过滤器。
该命令具有以下语法:
db.runCommand(
{
planCacheClearFilters: <collection>,
query: <query pattern>,
sort: <sort specification>,
projection: <projection specification>
}
)
planCacheClearFilters命令具有以下字段:
Field | Type | Description |
---|---|---|
planCacheClearFilters |
string | 集合的名称。 |
query |
document | 可选的。与要删除的过滤器关联的查询谓词。如果省略,则清除集合中的所有过滤器。 |
query
谓词中的值对于确定query shape无关紧要,因此查询中使用的值不必与使用planCacheListFilters所示的值匹配。
| sort
|文档|可选。与要删除的过滤器关联的排序(如果有)。
| projection
|文档|可选。与要删除的过滤器关联的投影(如果有)。
Required Access
用户必须具有包括planCacheIndexFilter
操作的访问权限。
Examples
清除集合上的特定索引过滤器
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
谓词中的值在确定query shape时不重要,因此以下命令还将删除第二个索引过滤器:
db.runCommand(
{
planCacheClearFilters: "orders",
query: { "status" : "P" }
}
)
清除集合上的所有索引过滤器
下面的示例清除orders
集合上的所有索引过滤器:
db.runCommand(
{
planCacheClearFilters: "orders"
}
)
See also