Definição
PlanCache.clearPlansByQuery( <query>, <projection>, <sort> )Limpa os planos de query em cache para a forma de query de cache do plano especificada.
Importante
Método mongosh
Esta página documenta um método
mongosh. Esta não é a documentação de comandos de banco de dados nem drivers específicos de linguagem, como Node.js.Para o comando do banco de dados, consulte o comando
planCacheClear.Para drivers de API do MongoDB, consulte a documentação do driver do MongoDB específica da linguagem.
O método está disponível somente a partir do
plan cache objectde uma collection específica; p ex.,db.collection.getPlanCache().clearPlansByQuery( <query>, <projection>, <sort>, <collation> ) O método
PlanCache.clearPlansByQuery()aceita os seguintes parâmetros:ParâmetroTipoDescriçãoquerydocumento
O predicado de query da forma de query do cache do plano. Somente a estrutura do predicado, incluindo os nomes dos campo , é significativa para a forma; os valores no predicado de query são insignificantes.
projectiondocumento
Opcional. A projeção associada ao forma de query do cache do plano. Obrigatório se especificar o parâmetro
sort.sortdocumento
Opcional. A classificação associada à forma de query do cache do plano.
collationdocumento
Opcional. Especifica a agrupamento para utilizar 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:
collation: { locale: <string>, caseLevel: <boolean>, caseFirst: <string>, strength: <int>, numericOrdering: <boolean>, alternate: <string>, maxVariable: <string>, backwards: <boolean> } Ao especificar agrupamento, o campo
localeé obrigatório; todos os outros campos de agrupamento são opcionais. Para obter descrições dos campos, consulte Documento de agrupamento.Se o agrupamento não for especificado, mas a coleção tiver um agrupamento padrão (consulte
db.createCollection()), a operação usará o agrupamento especificado para a coleção.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.
Para ver as formas de consulta para as quais existem planos de consulta em cache, consulte Exemplos.
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 método está disponível em implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
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
Acesso necessário
Em sistemas executados com authorization, um usuário deve ter acesso que inclua a ação planCacheWrite.
Exemplo
Se uma collection orders tiver a seguinte forma de query do cache do plano:
{ "query" : { "qty" : { "$gt" : 10 } }, "sort" : { "ord_date" : 1 }, "collation" : { locale : "fr" }, "projection" : { }, "planCacheShapeHash" : "9AAD95BE" }
Aviso
A partir do MongoDB 8.0, o campo queryHash existente é duplicado em um novo campo chamado planCacheShapeHash. Se você estiver usando uma versão anterior do MongoDB , verá apenas o campo queryHash. As futuras versões do MongoDB removerão o campo queryHash obsoleto, e você precisará usar o campo planCacheShapeHash em seu lugar.
A seguinte operação remove o plano de query armazenado em cache para a forma:
db.orders.getPlanCache().clearPlansByQuery( { "qty" : { "$gt" : 10 } }, { }, { "ord_date" : 1 }, { locale: "fr" } )
Dica
PlanCache.listQueryShapes()