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.