Colecciones compactas de MongoDB

Colecciones compactas de MongoDB

En este tutorial, exploraremos cómo usar el comando compacto en MongoDB. El comando compacto le permite reescribir y desfragmentar los datos e índices dentro de una colección MongoDB Free Up Disk Space.

Sintaxis de comando

El siguiente fragmento de código muestra la sintaxis del comando compacto:

db.runcommand (

compacto:

)

El comando compacto acepta los siguientes parámetros:

  1. - Especifica el nombre de la colección a compacto.
  2. fuerza - Un parámetro booleano que permite que el comando compacto se ejecute en el primario en un conjunto de réplica determinado.
  3. comentario - Especifica un comentario adjunto a un comando dado.

Es bueno tener en cuenta que la operación compacta bloquea la base de datos en la que se ejecuta el comando compacto. Sin embargo, no afecta a las otras bases de datos en el clúster.

Ejemplo:

Ilustramos cómo usar el comando compacto en MongoDB. Para ver mejor los efectos del comando compacto, es bueno ver el tamaño de la colección antes de la compactación.

Supongamos que tenemos una colección llamada Disney que contiene la información sobre películas y programas de televisión de Disney.

Podemos obtener el uso del disco de la colección antes de la compactación con el siguiente comando:

cine> db.Disney.estadísticas (escala: 1024)

El comando anterior devuelve las estadísticas sobre la colección especificada. Lo que nos interesa es el tamaño de la colección. Una salida de ejemplo es como se muestra:

,
Nindexes: 3,
IndexBuilds: [],
TotalIndexSize: 104,
Totalize: 400,
indexSizes: _id_: 28, title_1: 52, type_1: 24,
Escala Factor: 1024,
OK: 1

En este caso, podemos ver que la recopilación ocupa 400 kb de datos antes de la compactación.

Ejecutando el comando de compactación

Podemos ejecutar la operación de compactación como se muestra en lo siguiente:

cine> db.runCommand (compacto: "Disney", Force: True)

El comando debe devolver una salida como se muestra en el siguiente:

cine> db.runCommand (compacto: "Disney", Force: True)
bytesfreed: 300, ok: 1

Luego podemos verificar las estadísticas de uso de la siguiente manera:


Nindexes: 3,
IndexBuilds: [],
TotalIndexSize: 104,
TOTALSED: 399,
indexSizes: _id_: 28, title_1: 52, type_1: 24,
Escala Factor: 1024,
OK: 1

Podemos ver que el comando libera 30 bytes de datos.

Conclusión

En esta breve publicación, cubrimos cómo usar el comando compacto en MongoDB para desfragmentar los datos en una colección dada y liberar un espacio de disco al sistema de host.