Definición
planCacheClearRemueve los planes del query en caché para una colección. Especifique un forma del query del plan de caché para remover los planes del query almacenados en caché para esa forma. Omitir la forma del query del caché del plan para borrar todos los planes del query almacenados en caché.
Tip
En
mongosh, este comando también se puede ejecutar mediante los métodos asistentesPlanCache.clear()yPlanCache.clearPlansByQuery().Los métodos asistente son convenientes para usuarios de
mongosh, pero es posible que no proporcionen el mismo nivel de información que los comandos de base de datos. En los casos en que no se necesite la conveniencia o se requieran campos de retorno adicionales, utiliza el comando de base de datos.
Configuración de query
A partir de MongoDB 8.0, utiliza la configuración del query en lugar de añadir filtros de índice. Los filtros de índices están en desuso a partir de MongoDB 8.0.
La configuración de queries tiene más funcionalidades que los filtros de índices. Además, los filtros de índice no son persistentes y no puedes crear fácilmente filtros de índice para todos los nodos del clúster. Para añadir ajustes de query y explorar ejemplos, consulta setQuerySettings.
Compatibilidad
Este comando está disponible en implementaciones alojadas en los siguientes entornos:
MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube
Importante
Este comando no es compatible con los clústeres M0 y Flex. Para obtener más información, consulta Comandos no compatibles.
MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB
MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.
Sintaxis
El comando tiene la siguiente sintaxis:
db.runCommand( { planCacheClear: <collection>, query: <query>, sort: <sort>, projection: <projection>, comment: <any> } )
Campos de comandos
El comando toma los siguientes campos opcionales:
Campo | Tipo | Descripción |
|---|---|---|
| Documento | opcional. El predicado del query de la forma del query del caché del plan. Solo la estructura del predicado, incluidos los nombres de los campos, son significativos para la forma; los valores en el predicado de query no son significativos. |
| Documento | opcional. La proyección asociada con la forma del query del caché de planes. |
| Documento | opcional. El tipo asociado con la forma del query de la memoria caché de planes. |
| any | Opcional. Un comentario proporcionado por el usuario para adjuntar a este comando. Una vez configurado, este comentario aparece junto a los registros de este comando en las siguientes ubicaciones:
Un comentario puede ser de cualquier tipo BSON válido (string, objeto, arreglo, etc.). |
Para ver las formas del query para las que existen planes del query en caché, consulta Ejemplos.
Acceso requerido
En los sistemas que funcionan con authorization, un usuario debe tener acceso que incluya la acción planCacheWrite.
Ejemplos
Borrar los planes almacenados en caché para una forma del query de la caché de planes
Si una colección orders tiene la siguiente forma del query de caché de plan:
{ "query" : { "qty" : { "$gt" : 10 } }, "sort" : { "ord_date" : 1 }, "projection" : { }, "planCacheShapeHash" : "9AAD95BE" }
Advertencia
A partir de MongoDB 8.0, el campo queryHash existente se duplica en un nuevo campo llamado planCacheShapeHash. Si estás utilizando una versión anterior de MongoDB, solo verás el campo queryHash. Las versiones futuras de MongoDB removerán el campo queryHash obsoleto y deberás utilizar el campo planCacheShapeHash en su lugar.
La siguiente operación borra el plan del query en caché para la estructura:
db.runCommand( { planCacheClear: "orders", query: { "qty" : { "$gt" : 10 } }, sort: { "ord_date" : 1 } } )
Borrar todos los planes guardados en caché de una colección
El siguiente ejemplo borra todos los planes del query en caché de la colección orders:
db.runCommand( { planCacheClear: "orders" } )