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
/ /

convertirAConTopado (comando de base de datos)

convertToCapped

Advertencia

No ejecute este comando en colecciones particionadas

MongoDB no es compatible con la convertToCapped comando en 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

  • 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:

db.runCommand(
{
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 de 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 menor que el tamaño de la colección original sin limitación, MongoDB sobrescribirá los documentos en la colección con tamaño fijo según el orden de inserción o en orden de primero en, primero fuera.

  • Internamente, para convertir la colección, MongoDB utiliza el siguiente procedimiento

    • cloneCollectionAsCapped El comando crea la colección con tamaño fijo e importa los datos.

    • MongoDB descarta la colección original.

    • renameCollection renombra la nueva colección con tamaño fijo 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" : Long("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

compactStructuredEncryptionData

En esta página