Definición
convertToCappedAdvertencia
No ejecute este comando en colecciones particionadas
MongoDB no admite el comando en colecciones
convertToCappedfragmentadas.El comando convierte una colección existente, sin límite, en
convertToCappeduna colección limitada dentro de la misma base de datos.
Compatibilidad
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.
Sintaxis
El comando tiene la siguiente sintaxis:
db.runCommand( { convertToCapped: <collection>, size: <capped size>, writeConcern: <document>, comment: <any> } )
Campos de comandos
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 |
| 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 sizeespecificado 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
cloneCollectionAsCappedEl comando crea la colección limitada e importa los datos.MongoDB elimina la colección original.
renameCollectioncambia 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.
Ejemplo
Convertir una colecció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.