Docs Menu
Docs Home
/ /
/ / /

Crea una colección con tamaño fijo

Para crear una colección limitada, especifique el capped opción para el método db.createCollection() create o el comando.

Debe crear colecciones limitadas explícitamente. No puede crear una colección limitada implícitamente insertando datos en una colección inexistente.

Al crear una colección limitada, debe especificar su tamaño máximo. MongoDB preasigna el almacenamiento especificado para la colección. El tamaño de la colección limitada incluye una pequeña cantidad de espacio para la sobrecarga interna.

Opcionalmente, puedes especificar un número máximo de documentos para la colección. MongoDB remueve los documentos más antiguos si la colección alcanza el límite máximo de tamaño antes de llegar al conteo máximo de documentos.

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.

Los siguientes ejemplos le muestran cómo:

  • Crear una colección limitada con un tamaño máximo

  • Crear una colección limitada con un número máximo de documentos

Cree una colección limitada llamada log que tenga un tamaño máximo de 100,000 bytes:

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

Nota

El valor que proporcione para el campo size debe ser mayor que 0 y menor o igual que 1024^5 (1 PB). MongoDB redondea el size de todas las colecciones limitadas al múltiplo entero más cercano 256 de, en bytes.

Crear una colección con tamaño fijo llamada log2 que tenga un tamaño máximo de 5,242,880 bytes y pueda almacenar un máximo de 5,000 documentos:

db.createCollection(
"log2",
{
capped: true,
size: 5242880,
max: 5000
}
)

Importante

El campo size siempre es obligatorio, incluso cuando se especifica el número max de documentos.

Volver

Colecciones con tamaño fijo

En esta página