planCacheClearFilters
Definição
planCacheClearFilters
Remove filtros de índice em uma collection. Embora os filtros de índice só existam durante o processo do servidor e não persistam após o desligamento, você também pode limpar os filtros de índice existentes com o comando
planCacheClearFilters
.Especifique a forma de query do cache do plano para remover um filtro de índice específico. Omita a forma de query do cache do plano para limpar todos os filtros de índice em uma collection.
Configurações de query
A partir do MongoDB 8.0, use configurações de query em vez de adicionar filtros de índice. Os filtros de índice estão obsoletos a partir do MongoDB 8.0.
As configurações de query têm mais funcionalidades do que os filtros de índice. Além disso, os filtros de índice não são persistentes e você não pode criar facilmente filtros de índice para todos os nós de cluster. Para adicionar configurações de query e explorar exemplos, consulte setQuerySettings
.
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
Importante
Este comando não é suportado em clusters M0, M2 e M5 . Para obter mais informações, consulte Comandos não suportados.
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
Sintaxe
O comando tem a seguinte sintaxe:
db.runCommand( { planCacheClearFilters: <collection>, query: <query pattern>, sort: <sort specification>, projection: <projection specification>, collation: { <collation> }, comment: <any> } )
Campos de comando
O comando tem os seguintes campos:
Campo | Tipo | Descrição | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| string | O nome da collection da qual remover os filtros de índice. | ||||||||||
| documento | Opcional. O predicado de query para o filtro de índice remover. Se omitido, o comando limpa todos os filtros de índice da collection. Os valores no predicado
| ||||||||||
| documento | Opcional. A classificação do filtro de índice a ser removido, se houver. | ||||||||||
| documento | Opcional. A projeção para o filtro de índice remover, se houver. | ||||||||||
| documento | Especifica o agrupamento a ser usado para a operação. A colocação permite que os usuários especifiquem regras específicas do idioma para comparação de strings, como regras para letras maiúsculas e marcas de acento. A opção de agrupamento tem a seguinte sintaxe:
Ao especificar agrupamento, o campo Se o agrupamento não for especificado, mas a coleção tiver um agrupamento padrão (consulte Se nenhum agrupamento for especificado para a coleção ou para as operações, o MongoDB usa a comparação binária simples usada nas versões anteriores para comparações de strings. Você não pode especificar vários agrupamentos para uma operação. Por exemplo, você não pode especificar agrupamentos diferentes por campo ou, se estiver realizando uma busca com uma classificação, não poderá usar um agrupamento para a busca e outro para a classificação. Iniciando no MongoDB 6.0, um filtro de índice utiliza a coleção definida anteriormente utilizando o comando A partir do MongoDB 8.0, use configurações de query em vez de adicionar filtros de índice. Os filtros de índice estão obsoletos a partir do MongoDB 8.0. As configurações de query têm mais funcionalidades do que os filtros de índice. Além disso, os filtros de índice não são persistentes e você não pode criar facilmente filtros de índice para todos os nós de cluster. Para adicionar configurações de query e explorar exemplos, consulte | ||||||||||
| any | Opcional. Um comentário fornecido pelo usuário para anexar a este comando. Depois de definido, esse comentário aparece junto com os registros desse comando nos seguintes locais:
Um comentário pode ser qualquer tipo BSON válido (string, inteiro, objeto, array etc). |
Acesso necessário
O usuário deve ter acesso que inclua a ação planCacheIndexFilter
.
Exemplos
Limpar filtro de índice específico na collection
A coleção orders
contém os seguintes filtros de índice:
{ "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 } ] } { "query": { "item": "Movie" }, "collation": { locale: "en_US" }, "indexes": [ { "item": 1, "order_date": 1 , "quantity": 1 } ] }
Observação
Iniciando no MongoDB 6.0, um filtro de índice utiliza a coleção definida anteriormente utilizando o comando planCacheSetFilter
.
A partir do MongoDB 8.0, use configurações de query em vez de adicionar filtros de índice. Os filtros de índice estão obsoletos a partir do MongoDB 8.0.
As configurações de query têm mais funcionalidades do que os filtros de índice. Além disso, os filtros de índice não são persistentes e você não pode criar facilmente filtros de índice para todos os nós de cluster. Para adicionar configurações de query e explorar exemplos, consulte setQuerySettings
.
O seguinte comando remove apenas o segundo filtro de índice:
db.runCommand( { planCacheClearFilters: "orders", query: { "status" : "A" } } )
Como os valores no predicado query
são insignificantes para determinar a forma de query do cache do plano, o comando a seguir também removeria o segundo filtro de índice:
db.runCommand( { planCacheClearFilters: "orders", query: { "status" : "P" } } )
Limpar todos os Filtros de Índice em uma collection
O exemplo a seguir limpa todos os filtros de índice na collection orders
:
db.runCommand( { planCacheClearFilters: "orders" } )
Limpar filtro de índice contendo uma query e um agrupamento
O exemplo a seguir limpa o filtro de índice que contém a query em Movie
e o agrupamento en_US
para a collection orders
:
db.runCommand( { planCacheClearFilters: "orders", query: { item: "Movie" }, collation: { locale: "en_US" } } )