English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Colecciones fijas en MongoDB

colección fijaes una colección circular de tamaño fijo, que sigue el orden de inserción, para soportar operaciones de creación, lectura y eliminación de alta performance. Circular significa que cuando se agota el tamaño fijo asignado a la colección, comenzará a eliminar los documentos más antiguos de la colección sin proporcionar ningún comando explícito.

Si la actualización causó que el tamaño del documento aumente, se limitarán las actualizaciones del documento. Dado que las colecciones fijas almacenan los documentos en el orden de almacenamiento en disco, pueden garantizar que el tamaño del documento no aumente el tamaño asignado en el disco. Las colecciones fijas son ideales para almacenar información de registro, datos en caché o cualquier otro gran volumen de datos.

crear colección fija

Para crear una colección con límite superior, utilizamos el comando createCollection común, pero cambiandocappedopción configurada entruee especificar el tamaño máximo de la colección (en bytes).

>db.createCollection("cappedLogCollection",{capped:true,size:10000})

Además del tamaño de la colección, también podemos usarmaxparámetro-limitar el número de documentos en la colección-

>db.createCollection("cappedLogCollection",{capped:true,size:10000,max:1000})

Si desea verificar si la colección está limitada, utilice lo siguienteisCappedcomando-

>db.cappedLogCollection.isCapped()

si tiene la intención de convertir una colección existente en una con límite superior, puede usar el siguiente código para manejarla-

>db.runCommand({"convertToCapped":"posts",size:10000})

Este código convertirá nuestra colección existentepostspara colecciones limitadas.

Consultar colecciones limitadas

Por defecto, las consultas de búsqueda en las colecciones limitadas muestran los resultados en el orden de inserción. Pero si desea recuperar documentos en orden inverso, utilicesortLas órdenes mostradas en el siguiente código-

>db.cappedLogCollection.find().sort({$natural:-1)

Sobre las colecciones limitadas, hay algunos otros puntos importantes-

  • No podemos eliminar documentos de las colecciones limitadas.

  • No hay índices predeterminados en las colecciones limitadas, ni siquiera en el campo _id.

  • Al insertar nuevos documentos, MongoDB no necesita buscar físicamente en el disco un lugar para almacenar el nuevo documento. Puede insertar el nuevo documento ciegamente al final de la colección. Esto hace que las operaciones de inserción en la colección sean muy rápidas.

  • Asimismo, al leer documentos, MongoDB devuelve los documentos en el mismo orden que se almacenan en el disco, lo que hace que las operaciones de lectura sean muy rápidas.