planCacheClear
Definição
planCacheClear
Remove planos de query em cache para uma collection. Especifique umaforma de query de cache do plano para remover planos de query em cache para essa forma. Omita a forma de query do cache do plano para limpar todos os planos de query em cache.
Dica
No
mongosh
, este comando também pode ser executado através dos métodos de ajudaPlanCache.clear()
ePlanCache.clearPlansByQuery()
.Os métodos auxiliares são práticos para os usuários
mongosh
, mas podem não retornar o mesmo nível de informações que os comandos do banco de dados. Nos casos em que a praticidade não for necessária ou os campos de retorno adicionais forem necessários, use o comando de banco de dados.
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( { planCacheClear: <collection>, query: <query>, sort: <sort>, projection: <projection>, comment: <any> } )
Campos de comando
O comando usa os seguintes campos opcionais:
Campo | Tipo | Descrição |
---|---|---|
| documento | Opcional. 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. |
| documento | Opcional. A projeção associada ao forma de query do cache do plano. |
| documento | Opcional. A classificação associada à forma de query do cache do plano. |
| 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). |
Para ver as formas de consulta para as quais existem planos de consulta em cache, consulte Exemplos.
Acesso necessário
Em sistemas executados com authorization
, um usuário deve ter acesso que inclua a ação planCacheWrite
.
Exemplos
Limpar planos em cache para um formato de query de cache de plano
Se uma collection orders
tiver a seguinte forma de query do cache do plano:
{ "query" : { "qty" : { "$gt" : 10 } }, "sort" : { "ord_date" : 1 }, "projection" : { }, "planCacheShapeHash" : "9AAD95BE" }
Aviso
A partir do MongoDB 8.0, o campo queryHash
pré-existente é renomeado para planCacheShapeHash
. Se você estiver usando uma versão anterior do MongoDB , verá queryHash
em vez de planCacheShapeHash
.
A seguinte operação limpa o plano de query armazenado em cache para a forma:
db.runCommand( { planCacheClear: "orders", query: { "qty" : { "$gt" : 10 } }, sort: { "ord_date" : 1 } } )
Limpar todos os planos em cache de uma collection
O exemplo a seguir limpa todos os plano de query em cache para a collection orders
:
db.runCommand( { planCacheClear: "orders" } )