planCacheClearFilters

在本页面

Definition

删除集合上的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"
   }
)
首页