MongoDB Colecciones fijas (Capped Collections)

Las colecciones fijas (Capped Collections) de MongoDB son colecciones con un rendimiento excelente y un tamaño fijo. En cuanto al tamaño fijo, podemos imaginarlas como una cola circular: cuando el espacio de la colección se agota, los elementos insertados sobrescriben los elementos iniciales de la cabeza.


Crear una colección fija (capped)

Creamos una colección fija mediante createCollection y establecemos la opción capped en true:

>db.createCollection("cappedLogCollection",{capped:true,size:10000})

También se puede especificar el número de documentos añadiendo el atributo max:1000:

>db.createCollection("cappedLogCollection",{capped:true,size:10000,max:1000})

Determinar si una colección es una colección fija (capped):

>db.cappedLogCollection.isCapped()

Si necesita convertir una colección existente en una colección fija, puede usar el siguiente comando:

>db.runCommand({"convertToCapped":"posts",size:10000})

El código anterior convierte nuestra colección existente `posts` en una colección fija.


Consulta de colecciones fijas

Los documentos de una colección fija se almacenan en orden de inserción. Por defecto, las consultas devuelven los resultados en orden de inserción; también se puede usar $natural para ajustar el orden de retorno.

>db.cappedLogCollection.find().sort({$natural:-1})

Características funcionales de las colecciones fijas

Se puede insertar y actualizar, pero la actualización no puede exceder el tamaño de la colección, de lo contrario la actualización falla. No se permite eliminar, pero se puede llamar a drop() para eliminar todas las filas de la colección; sin embargo, después de drop, es necesario reconstruir explícitamente la colección.

En máquinas de 32 bits, el valor máximo de una colección capped es de aproximadamente 482.5M; en sistemas de 64 bits, solo está limitado por el tamaño del archivo del sistema.


Atributos y usos de las colecciones fijas

Atributos

  • Atributo 1: La inserción en colecciones fijas es extremadamente rápida.
  • Atributo 2: La salida de consultas en orden de inserción es extremadamente rápida.
  • Atributo 3: Puede eliminar los datos más antiguos al insertar los datos más recientes.

Usos

  • Uso 1: Almacenar información de registros (logs).
  • Uso 2: Almacenar en caché una pequeña cantidad de documentos.
Otras extensiones