Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Administración

convertToCapped

convertToCapped

Advertencia

No ejecute este comando en colecciones particionadas

MongoDB no admite el comando convertToCapped en las colecciones particionadas.

El comando convertToCapped convierte una colección existente, sin límite, en una colección con tamaño fijo colección con tamaño fijo dentro de la misma base de datos.

Este comando está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

No hay soporte para Gratuito y ​.

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

El comando tiene la siguiente sintaxis:

{ convertToCapped: <collection>,
size: <capped size>,
writeConcern: <document>,
comment: <any>
}

El comando toma los siguientes campos:

Campo
Descripción

convertToCapped

El nombre de la colección existente que se va a convertir.

tamaño

El tamaño máximo, en bytes, para la colección con tamaño fijo.

writeConcern

Opcional. Un documento que expresa el nivel de confirmación de escritura del comando drop. Se puede omitir usar el nivel de confirmación de escritura por defecto.

comment

Opcional. Un comentario proporcionado por el usuario para adjuntar a este comando. Una vez configurado, este comentario aparece junto a los registros de este comando en las siguientes ubicaciones:

Un comentario puede ser de cualquier tipo BSON válido (string, objeto, arreglo, etc.).

convertToCapped toma una colección existente (<collection>) y la transforma en una colección con tamaño fijo con un tamaño máximo en bytes, especificado por el argumento size (<capped size>).

Durante el proceso de conversión, el comando convertToCapped exhibe el siguiente comportamiento:

  • MongoDB recorre los documentos en la colección original en
    orden natural y carga los documentos en una nueva colección con tamaño fijo.
  • Si el capped size especificado para la colección con tamaño fijo es
    más pequeño que el tamaño de la colección original sin límite, entonces MongoDB sobrescribirá documentos en la colección con tamaño fijo según el orden de inserción, o el orden primero en, primero fuera.
  • Internamente, para convertir la colección, MongoDB utiliza lo siguiente

    Procedimiento

    • cloneCollectionAsCapped El comando crea el limitado
      colección e importación de los datos.
    • MongoDB descarta la colección original.

    • renameCollection cambia el nombre de la nueva colección limitada
      al nombre de la colección original.
  • Esto mantiene un bloqueo exclusivo de base de datos durante el período de la operación. Otras operaciones que bloqueen la misma base de datos serán bloqueadas hasta que la operación se complete. Consulta ¿Qué bloqueos toma algunas operaciones comunes del cliente? para operaciones que bloquean la base de datos.

Advertencia

El convertToCapped no recreará índices de la colección original en la nueva colección, excepto el índice en el campo _id. Si necesitas índices en esta colección, deberás crearlos una vez completada la conversión.

El siguiente ejemplo utiliza db.collection.insertOne() para crear una colección events, y db.collection.stats() para obtener información sobre la colección:

db.events.insertOne( { click: 'button-1', time: new Date() } )
db.events.stats()

MongoDB devolverá lo siguiente:

{
"ns" : "test.events",
...
"capped" : false,
...
}

Para convertir la colección events en una colección con tamaño fijo y ver la información actualizada de la colección, ejecute los siguientes comandos:

db.runCommand( { convertToCapped: 'events', size: 8192 } )
db.events.stats()

MongoDB devolverá lo siguiente:

{
"ns" : "test.events",
...
"capped" : true,
"max" : NumberLong("9223372036854775807"),
"maxSize" : 8192,
...
}

El convertToCapped no recreará índices de la colección original en la nueva colección, excepto el índice en el campo _id. Si necesitas índices en esta colección, deberás crearlos una vez completada la conversión.

Tip

Volver

compact

En esta página