English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
Para crear una colección con límite superior, utilizamos el comando createCollection común, pero cambiandocapped
opción configurada entrue
e 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 usarmax
pará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 siguienteisCapped
comando-
>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 existenteposts
para 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, utilicesort
Las ó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.