Docs Menu
Docs Home
/ /

Colecciones con tamaño fijo

Las colecciones con tamaño fijo son colecciones de tamaño fijo que insertan y recuperan documentos según el orden de inserción. La colección con tamaño fijo funciona de manera similar a un búfer circular: una vez que una colección llena su espacio asignado, hace espacio para nuevos documentos sobrescribiendo los documentos más antiguos de la colección.

El siguiente ejemplo crea una colección con tamaño fijo llamada log que tiene un tamaño máximo de 100 000 bytes.

db.createCollection( "log", { capped: true, size: 100000 } )

Para obtener más información sobre la creación de colecciones con tamaño fijo, consulta createCollection() o create.

En general, los índices TTL (Time To Live) ofrecen un mejor rendimiento y más flexibilidad que las colecciones con tamaño fijo. Los índices TTL caducan y remueven datos de las colecciones normales según el valor de un campo de tipo fecha y un valor TTL para el índice.

Las colecciones con tamaño fijo serializan las operaciones de guardado y, por lo tanto, tienen un rendimiento peor en la inserción, actualización y eliminación concurrentes que las colecciones sin tamaño fijo. Antes de crear una colección con tamaño fijo, considera si puedes usar un índice TTL en su lugar.

El caso de uso más común para una colección con tamaño fijo es almacenar información de registros. Cuando la colección con tamaño fijo alcanza su tamaño máximo, las entradas antiguas del registro se sobrescriben automáticamente con nuevas entradas.

Para crear y consultar colecciones con tamaño fijo, consulta estas páginas:

Considera estos detalles de comportamiento para la colección con tamaño fijo.

La colección oplog.rs que almacena un registro de las operaciones en un Set de réplicas utiliza una colección con tamaño fijo.

A diferencia de otras colecciones con tamaño fijo, el oplog puede crecer más allá del límite de tamaño configurado para evitar borrar el majority commit point.

Nota

MongoDB redondea el tamaño limitado de oplog al múltiplo entero más cercano de 256 bytes.

Las colecciones con tamaño fijo tienen un campo _id y un índice en el campo _id de forma predeterminada.

Evita actualizar datos en una colección con tamaño fijo. Debido a la condición de tamaño de las colecciones de tamaño fijo, las actualizaciones pueden hacer que sus datos se expandan más allá del espacio asignado a la colección, lo que puede causar un comportamiento inesperado.

Utiliza el orden natural para recuperar eficientemente los elementos más recientes insertados de la colección. Esto es similar a usar el comando tail en una entrada de registro.

Puedes usar un cursor con seguimiento con las colecciones con tamaño fijo. De manera similar al comando tail -f de Unix, el cursor con seguimiento "sigue" el final de una colección con tamaño fijo. A medida que se insertan nuevos documentos en la colección con tamaño fijo, puedes utilizar el cursor con seguimiento para continuar recuperando documentos.

Para obtener información sobre la creación de un cursor con seguimiento, consulta Cursores con seguimiento.

Si hay escritores concurrentes en una colección con tamaño fijo, MongoDB no ofrece garantías de que los documentos se devuelvan en el orden de inserción.

A partir de MongoDB,8.0 puede usar la preocupación de lectura "snapshot" en colecciones limitadas.

Volver

Vistas materializadas on-demand

En esta página