MongoDB con controladores
Importante
Método mongosh
Esta página documenta un método mongosh. No se trata de la documentación de comandos de base de datos ni de controladores específicos de lenguajes de programación, como Node.js.
Para el comando de base de datos, consulta el comando collStats.
Para los drivers de API de MongoDB, consulte la documentación del driver de MongoDB específica del lenguaje.
Definición
db.collection.stats(<option>)Devuelve estadísticas sobre la colección.
Devuelve: Un documento que contiene estadísticas sobre la colección especificada. Se puede consultar
collStatspara obtener un desglose de las estadísticas devueltas.
Nota
db.collection.stats() llama internamente a la etapa de agregación $collStats por defecto.
Sintaxis
El método tiene el siguiente formato:
db.collection.stats({ scale: <num>, // Optional indexDetails: <boolean>, // Optional indexDetailsKey: <document>, // Optional indexDetailsName: <string>. // Optional })
Campos
Campo | Tipo | Descripción |
|---|---|---|
| Número | Opcional. El factor de escala para los datos de los distintos tamaños. El Si se especifica un factor de escala no entero, MongoDB utiliza la parte entera del factor especificado. Por ejemplo, si se especifica un factor de escala de A partir de la versión 4.2, la salida incluye el |
| booleano | Opcional. Si Solo funciona para el motor de almacenamiento WiredTiger. Se establece por defecto en |
| Documento | Opcional. Si Si no se encuentra ninguna coincidencia, Se puede usar |
| string | Opcional. Si Si no se encuentra ninguna coincidencia, Se puede usar |
Para especificar solo el factor scale, MongoDB admite el formato heredado:
db.collection.stats(<number>)
Compatibilidad
Este método está disponible en implementaciones alojadas en los siguientes entornos:
- MongoDB Atlas: El servicio totalmente administrado para implementaciones de MongoDB en la nube.
Nota
Este comando es compatible con todos los clústeres de MongoDB Atlas. Para obtener información sobre la compatibilidad de Atlas con todos los comandos, consulte 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.
Comportamiento
Tamaños escalados
A menos que el nombre de la métrica lo especifique (como "bytes currently in the cache"), los valores relacionados con el tamaño se muestran en bytes y pueden ser anulados por scale.
El factor de escala redondea los valores de tamaño afectados a números enteros.
Motor de almacenamiento
Según el motor de almacenamiento, los datos devueltos pueden diferir. Para obtener más información sobre los campos, se puede consultar detalles de salida.
Precisión tras un apagado inesperado
Después de un apagado incorrecto de un mongod que utiliza el motor de almacenamiento Wired Tiger, las estadísticas de recuento y tamaño informadas por db.collection.stats() pueden ser inexactas.
La cantidad de deriva depende del número de operaciones de inserción, actualización o eliminación realizadas entre el último punto de control y el apagado no limpio. Los puntos de control suelen ocurrir cada 60 segundos. Sin embargo, las instancias mongod que se ejecutan con configuraciones --syncdelay no por defecto pueden tener puntos de control más o menos frecuentes.
Ejecuta validate en cada colección en el mongod para restaurar las estadísticas después de un apagado no limpio.
Después de un apagado no limpio:
validateactualiza la estadística de recuento en la salidacollStatscon el último valor.
Restricción del estado del set de réplicas
Para que se ejecuten en un set de réplicas, las operaciones de collStats requieren que el nodo esté en estado PRIMARY o SECONDARY. Si el nodo se encuentra en otro estado, como STARTUP2, se produce un error en la operación.
Comportamiento del filtro de índice
Filtrar por indexDetails utilizando indexDetailsKey o indexDetailsName solo devolverá un único índice coincidente. Si no se encuentra una coincidencia exacta, indexDetails mostrará información sobre todos los índices de la colección.
El campo indexDetailsKey acepta un documento con el siguiente formato:
{ '<string>' : <value>, '<string>' : <value>, ... }
Donde <string>> es el campo que está indexado y <value> es la dirección del índice o el tipo de índice especial, como text o 2dsphere. Consulta los tipos de índice para ver la lista completa de los tipos de índice.
Apagado inesperado y recuento
Para las instancias de MongoDB que utilizan el motor de almacenamiento WiredTiger, después de un apagado no limpio, las estadísticas de tamaño y conteo pueden diferir hasta en 1000 documentos según lo informado por collStats, dbStats, count. Para efectuar la restauración de las estadísticas correctas para la colección, se debe ejecutar validate en la colección.
Índices en curso
El db.collection.stats() incluye información sobre los índices que se están creando actualmente. Para obtener más detalles, consulte:
Ejemplos
Los ejemplos de esta página utilizan datos del conjunto de datos sample_mflix. Para obtener más información sobre cómo cargar este conjunto de datos en la implementación autogestionada de MongoDB, consultar Cargar el conjunto de datos de muestra. Si realizó alguna modificación en las bases de datos de muestra, es posible que deba descartar y volver a crear las bases de datos para ejecutar los ejemplos de esta página.
Búsqueda de estadísticas básicas
La siguiente operación devuelve estadísticas de la colección de movies en la base de datos sample_mflix:
db.movies.stats()
{ ok: 1, capped: false, ns: 'sample_mflix.movies', size: ..., count: 21349, avgObjSize: 1598, storageSize: ..., nindexes: 2, totalIndexSize: ..., totalSize: ..., indexSizes: { _id_: ..., cast_text_fullplot_text_genres_text_title_text: ... }, scaleFactor: 1 }
Si no especifica un parámetro scale, todos los valores de tamaño están en bytes.
Búsqueda de estadísticas con escalamiento
La siguiente operación devuelve los valores de tamaño en kilobytes en lugar de bytes al especificar un scale de 1024:
db.movies.stats( { scale : 1024 } )
{ ok: 1, capped: false, ns: 'sample_mflix.movies', size: ..., count: 21349, avgObjSize: 1598, storageSize: ..., nindexes: 2, totalIndexSize: ..., totalSize: ..., indexSizes: { _id_: ..., cast_text_fullplot_text_genres_text_title_text: ... }, scaleFactor: 1024 }
Consulta de estadísticas con detalles del índice
La siguiente operación devuelve un campo indexDetails que contiene información relacionada con cada uno de los índices de la colección:
db.movies.stats( { indexDetails : true } )
{ ok: 1, capped: false, ns: 'sample_mflix.movies', count: 21349, nindexes: 2, indexDetails: { _id_: ..., cast_text_fullplot_text_genres_text_title_text: ... }, indexSizes: { _id_: ..., cast_text_fullplot_text_genres_text_title_text: ... }, scaleFactor: 1 }
Búsqueda de estadísticas con detalles del índice de filtro
Para aplicar el filtro a los índices en el campo indexDetails, especificar las claves del índice utilizando la opción indexDetailsKey o especificar el nombre del índice mediante indexDetailsName. Para descubrir las claves y los nombres del índice, utilice db.collection.getIndexes().
Dado el siguiente índice:
{ "ns" : "sample_mflix.movies", "v" : 2, "key" : { "_fts" : "text", "_ftsx" : 1 }, "name" : "cast_text_fullplot_text_genres_text_title_text", "weights" : { "cast" : 1, "fullplot" : 1, "genres" : 1, "title" : 1 }, "default_language" : "english", "language_override" : "language", "textIndexVersion" : 3 }
La siguiente operación filtra el documento indexDetails a un solo índice utilizando la opción indexDetailsKey.
db.movies.stats( { 'indexDetails' : true, 'indexDetailsKey' : { '_fts' : 'text', '_ftsx' : 1 } } )
La siguiente operación filtra el documento indexDetails a un solo índice utilizando la opción indexDetailsName.
db.movies.stats( { 'indexDetails' : true, 'indexDetailsName' : 'cast_text_fullplot_text_genres_text_title_text' } )
Ambas operaciones devuelven el mismo resultado:
{ ok: 1, capped: false, ns: 'sample_mflix.movies', count: 21349, nindexes: 2, indexDetails: { cast_text_fullplot_text_genres_text_title_text: ... }, indexSizes: { _id_: ..., cast_text_fullplot_text_genres_text_title_text: ... }, scaleFactor: 1 }
Para obtener una explicación de la salida, consulte detalles de salida.
Tip