Luego de un año de desarrollo se dio a conocer el lanzamiento de la nueva versión de MongoDB 6.0, en la cual en el anuncio se menciona que los cambios más destacados de esta versión incluyen mejoras en las series temporales, nueva funcionalidad y mejoras de rendimiento para cambiar flujos, entre otras cosas más.
Para quienes desconocen de MongoDB, deben saber que esta es una base de datos que admite el almacenamiento de documentos en un formato similar a JSON, tiene un lenguaje bastante flexible para generar consultas, puede crear índices para varios atributos almacenados, proporciona almacenamiento eficiente de objetos binarios grandes, admite el registro de operaciones para cambiar y agregar datos a la base de datos, puede trabajar de acuerdo con el paradigma Map/Reduce, admite la replicación y la construcción de configuraciones tolerantes a fallas.
Principales novedades de MongoDB 6.0
En esta nueva versión que se presenta de MongoDB 6.0 se implementó la capacidad de ejecutar consultas que cubren los datos almacenados en forma cifrada (Queryable Encryption). Los datos se descifran por parte del usuario y permanecen cifrados durante el procesamiento de la solicitud (la solicitud se realiza sobre datos cifrados, sin descifrarlos primero).
En su forma actual, solo se permiten expresiones de comparación en las consultas, pero en el futuro se planea agregar soporte para verificar rangos, prefijos, sufijos, subcadenas y otras operaciones.
Otro de los cambios que se destaca de esta nueva versión de MongoDB 6.0 es que se han ampliado las posibilidades asociadas al almacenamiento de datos en forma de series temporales (time series collections), las cuales están optimizadas para almacenar porciones de valores de parámetros registrados en determinados intervalos de tiempo (tiempo y un conjunto de valores correspondientes a esta vez), por ejemplo, surge la necesidad de almacenar dichos datos en sistemas de monitoreo, plataformas financieras, sistemas para sondear los estados de los sensores.
La nueva versión ofrece la posibilidad de utilizar índices secundarios y compuestos con colecciones de datos en forma de series temporales.
Por otra parte, tambien se destaca las nuevas herramientas para el seguimiento de cambios («cambio de flujos», API Change Streams), con la ayuda de las cuales puede organizar el envío de notificaciones a aplicaciones sobre cambios de datos en la base de datos. Los cambios se informan en tiempo real y le permiten crear aplicaciones utilizando técnicas de programación reactivas y basadas en eventos. Los eventos se procesan con el método de observación; si es necesario, los eventos se pueden filtrar y agregar con los operadores $match, $project y $redact. La nueva versión ofrece la posibilidad de obtener el estado anterior y posterior del documento (por ejemplo, cuando se elimina o cambia el documento). Además de las operaciones del lenguaje de manipulación de datos (DML), se proporciona soporte para operaciones DDL (lenguaje de definición de datos), como la creación y eliminación de índices y colecciones.
Ademas de ello, tambien sé destaca que los operadores $lookup y $graphlookup son totalmente compatibles con el almacenamiento fragmentado. El rendimiento de la operación $lookup se ha optimizado, por ejemplo, cuando hay un índice en una clave externa, la coincidencia de una pequeña cantidad de documentos ahora es de 5 a 10 veces más rápida y una gran cantidad es el doble de rápida. Para asignaciones sin usar índices, la ganancia de rendimiento puede ser de hasta 100x.
De los demás cambios que se destacan de esta nueva versión:
- Se proporciona la capacidad de ejecutar consultas analíticas complejas en porciones consistentes (instantáneas) del estado de los datos de producción.
- Las consultas analíticas como esta pueden abarcar múltiples fragmentos en grandes configuraciones distribuidas de MongoDB.
- Se agregaron nuevos operadores $maxN, $minN y $lastN para determinar los valores en un conjunto de datos, así como el operador $sortArray para ordenar los elementos de la matriz.
- La eficiencia de la segmentación se ha mejorado significativamente.
- El tamaño de bloque predeterminado para una colección fragmentada se ha aumentado a 128 MB.
- Se agregó el comando configureCollectionBalancing para desfragmentar una colección fragmentada.
- Se ha agregado compatibilidad con proveedores de claves compatibles con KMIP al cifrado de nivel de campo del lado del cliente (CSFLE).
- Se agregó la capacidad de comprimir y cifrar el registro de auditoría, que refleja la actividad de los usuarios de DBMS.
- Se ha implementado un modo de sincronización de datos experimental entre clústeres de MongoDB (Cluster-to-Cluster Sync).
- Se agregó soporte para adjuntar datos adicionales, como información geográfica para tener en cuenta la distancia y la ubicación.
- Rendimiento mejorado para leer, consultar y ordenar.
Finalmente si estás interesado en poder conocer más al respecto sobre esta nueva versión, puedes consultar los detalles en el siguiente enlace.