Docs Menu
Docs Home
/ /

convertirAConTopado (comando de base de datos)

convertToCapped

Advertencia

No ejecute este comando en colecciones particionadas

MongoDB no es compatible con convertToCapped Comando sobre colecciones fragmentadas.

El comando convierte una colección existente, sin límite, en convertToCapped una colección limitada 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 a convertir.

tamaño

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

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 limitada con un tamaño máximo en bytes, especificado por el size argumento<capped size> ().

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

  • MongoDB recorre los documentos de la colección original en orden natural y carga los documentos en una nueva colección limitada.

  • Si el capped size especificado para la colección limitada es menor que el tamaño de la colección original sin límite, entonces MongoDB sobrescribirá los documentos en la colección limitada según el orden de inserción o el orden de primero en entrar, primero en salir.

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

    • cloneCollectionAsCapped El comando crea la colección limitada e importa los datos.

    • MongoDB elimina 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 la base de datos durante la operación. Otras operaciones que bloqueen la misma base de datos se bloquearán hasta que la operación se complete. Consulte ¿Qué bloqueos aplican algunas operaciones comunes de cliente? para obtener información sobre las operaciones que bloquean la base de datos.

Advertencia

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

El siguiente ejemplo utiliza para crear db.collection.insertOne() una events colección y para obtener información sobre la db.collection.stats() 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 limitada y ver la información de la colección actualizada, 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 no recreará los índices de la colección original en la nueva colección, excepto el índice convertToCapped del _id campo. Si necesita índices en esta colección, deberá crearlos una vez completada la conversión.

Tip

Volver

compactStructuredEncryptionData

En esta página