MongoDB planCacheClear
planCacheClear命令用于删除集合的缓存查询计划。它声明查询形状以删除该形状的缓存查询计划。
语法:
db.runCommand(
{
planCacheClear: <collection name>,
query: <query here>,
sort: <sorting algo>,
projection: <projection>
}
)
命令字段
字段 |
类型 |
说明 |
query |
document |
它包含形状查询的前缀。 |
projection |
document |
它包含与查询形状相关的投影详细信息。 |
sort |
document |
它包含与查询形状相关的排序详细信息。 |
示例:
我们具有以下查询形状:
{
"query" : { "qty" : { "$gt" : 10 } },
"sort" : { "ord_date" : 1 },
"projection" : { },
"queryHash" : "9AAD95BE"
}
以下代码清除为该形状缓存的查询计划:
db.runCommand(
{
planCacheClear: "orders",
query: { "qty" : { "$gt" : 10 } },
sort: { "ord_date" : 1 }
}
)
MongoDB planCacheClearFilters命令
planCacheClearFilters命令删除集合上的索引过滤器。我们还可以使用此命令清除现有的索引过滤器,而索引过滤器仅在服务器进程期间存在,并且在关闭后不会持久。
语法:
db.runCommand(
{
planCacheClearFilters: <collection>,
query: <query pattern>,
sort: <sort specification>,
projection: <projection specification>
}
)
命令字段:
字段 |
类型 |
说明 |
planCache ClearFilters |
string |
它声明了集合的名称。 |
query |
document |
它包含与要删除的过滤器关联的查询谓词。 |
sort |
document |
它包含与要删除的过滤器相关的排序标准。 |
projection |
document |
它包含与要删除的过滤器关联的投影详细信息。 |
示例:
books集合包含以下两个过滤器:
{
"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" }
}
)
MongoDB planCacheListFilters命令
palncacheListFilters命令列出与集合的查询形状相关的索引过滤器。
语法:
db.runCommand( { planCacheListFilters: <collection> } )
命令字段:
字段 |
类型 |
说明 |
planCacheListFilters |
string |
它声明集合的名称 |
示例:
{
"filters" : [
{
"query" : <query>
"sort" : <sort>,
"projection" : <projection>,
"indexes" : [
<index1>,
...
]
},
...
],
"ok" : 1
}
MongoDB palnCacheSetFilter命令
此命令为集合设置索引过滤器。它是查询形状已经存在的索引过滤器。 planCacheSetFilter会覆盖以前的索引过滤器。
语法:
db.runCommand(
{
planCacheSetFilter: <collection>,
query: <query>,
sort: <sort>,
projection: <projection>,
indexes: [ <index1>, <index2>, ...]
}
)
命令过滤器
字段 |
类型 |
说明 |
planCacheSetFilter |
string |
此字段声明了集合的名称。 |
query |
document |
它包含与索引过滤器关联的查询谓词。 |
sort |
document |
它包含与过滤器关联的排序详细信息。 |
projection |
document |
它包含与过滤器关联的投影。 |
indexes1 |
array |
它包含指定查询形状的索引数组。 |
示例:
该示例在books集合上创建索引过滤器,以便对于仅包含购买字段上的等式匹配而没有任何匹配的查询投影和排序。
db.runCommand(
{
planCacheSetFilter: "books",
query: { purchase: "MongoDB" },
indexes: [
{ stud_id: 123, purchase: 2 },
{ purchage: 5, order_date: 01102020 }
]
}
)