La base de datos orientada a documentos MongoDB 5.0 está disponible

Se ha presentado la versión de la base de datos orientada a documentos MongoDB 5.0, que ocupa un nicho entre los sistemas rápidos y escalables que manejan datos en formato clave/valor y las bases de datos relacionales, funcionales y convenientes para la formulación de consultas. El código de MongoDB está escrito en C++ y se distribuye bajo la licencia SSPL, que se basa en la licencia AGPLv3, pero no es de código abierto, ya que contiene un requisito discriminatorio de entrega bajo la licencia SSPL no solo del código de la aplicación en sí, sino también del código fuente de todos los componentes involucrados en la provisión del servicio en la nube.

MongoDB admite el almacenamiento de documentos en un formato similar a JSON, tiene un lenguaje bastante flexible para la formulación de consultas, puede crear índices para varios atributos almacenados, asegura eficazmente el almacenamiento de grandes objetos binarios, admite el registro de operaciones para la modificación y adición de datos en la base de datos, puede operar de acuerdo con la paradigma Map/Reduce, admite la replicación y la construcción de configuraciones de alta disponibilidad.

MongoDB cuenta con herramientas integradas para garantizar la segmentación (distribución de un conjunto de datos entre servidores según una clave específica), que combinadas con la replicación permiten construir un clúster de almacenamiento escalable horizontalmente, en el que no hay un único punto de fallo (la falla de cualquier nodo no afecta el funcionamiento de la base de datos), se admite la recuperación automática después de un fallo y la transferencia de carga desde un nodo defectuoso. La ampliación del clúster o la conversión de uno servidores a clúster se realiza sin detener el funcionamiento de la base de datos simplemente agregando nuevas máquinas.

Características de la nueva versión:

  • Se han añadido colecciones para datos en forma de series temporales, optimizadas para el almacenamiento de conjuntos de valores de parámetros que se registran a intervalos determinados (el tiempo y el conjunto de valores correspondientes a ese tiempo). La necesidad de almacenar este tipo de datos surge en sistemas de monitoreo, plataformas financieras y sistemas de encuesta de estados de sensores. El trabajo con datos de series temporales se realiza como con colecciones de documentos normales, pero los índices y el método de almacenamiento para ellos están optimizados teniendo en cuenta la vinculación temporal, lo que permite reducir significativamente el consumo de espacio en disco, disminuir la latencia en la ejecución de consultas y materializar la posibilidad de análisis de datos en tiempo real.

    MongoDB considera tales colecciones como vistas no materializadas disponibles para escritura, creadas a partir de colecciones internas y que al insertarse agrupan automáticamente los datos de la serie temporal en un formato de almacenamiento optimizado. Cada registro vinculado al tiempo se trata como un documento separado al consultarlo. Los datos se ordenan e indexan automáticamente por tiempo (no es necesario crear índices explícitos por tiempo).

  • Se ha añadido soporte para operadores de ventana (funciones analíticas), que permiten realizar acciones sobre un conjunto específico de documentos en una colección. A diferencia de las funciones de agregado, las funciones de ventana no reducen el conjunto agrupado, sino que realizan agregaciones basadas en el contenido de la "ventana", que incluye uno o más documentos del conjunto resultante. Para manipular un subconjunto de documentos, se ha propuesto una nueva etapa $setWindowFields, que permite, por ejemplo, determinar las diferencias entre dos documentos en la colección, calcular el ranking de ventas y analizar información en series temporales complejas.
  • Se ha añadido soporte para la versionización de la API, lo que permite vincular la aplicación a un estado específico de la API y eliminar los riesgos asociados con posibles rupturas de compatibilidad al pasar a nuevas versiones de la base de datos. La versionización de la API separa el ciclo de vida de la aplicación del ciclo de vida de la base de datos y permite a los desarrolladores realizar cambios en la aplicación cuando surge la necesidad de utilizar nuevas funcionalidades, y no solo cuando se lleva a cabo la transición a una nueva versión de la base de datos.
  • Se ha añadido soporte para el mecanismo de Live Resharding, que permite cambiar sobre la marcha las claves utilizadas para la segmentación (shard key) sin detener la base de datos.
  • Se han ampliado las capacidades de cifrado de campos del lado del cliente (Client-Side Field Level Encryption). Ahora es posible reconfigurar filtros de auditoría y rotación de certificados x509 sin detener la operación de la base de datos. Se ha añadido soporte para la configuración del conjunto de cifrados para TLS 1.3.
  • Se ha propuesto una nueva shell de línea de comandos de MongoDB Shell (mongosh), que se desarrolla como un proyecto separado, escrito en JavaScript utilizando la plataforma Node.js y distribuido bajo la licencia Apache 2.0. MongoDB Shell permite conectarse a la base de datos, cambiar configuraciones y enviar consultas. Soporta autocompletado inteligente de métodos, comandos y expresiones MQL, resaltado de sintaxis, ayuda contextual, análisis de mensajes de error y posibilidad de extender la funcionalidad a través de complementos. La antigua shell CLI 'mongo' ha sido declarada obsoleta y será eliminada en una futura versión.
    La base de datos orientada a documentos MongoDB 5.0 está disponible
  • Se han añadido nuevos operadores: $count, $dateAdd, $dateDiff, $dateSubtract, $sampleRate y $rand.
  • Se asegura la utilización de índices al usar los operadores $eq, $lt, $lte, $gt y $gte dentro de la expresión $expr.
  • En los comandos aggregate, find, findAndModify, update, delete y en los métodos db.collection.aggregate(), db.collection.findAndModify(), db.collection.update() y db.collection.remove(), se ha implementado soporte para la opción 'let' para definir una lista de variables, haciendo que los comandos sean más legibles al separar las variables del texto de la consulta.
  • Las operaciones find, count, distinct, aggregate, mapReduce, listCollections y listIndexes ahora no se bloquean si se está ejecutando simultáneamente una operación que establece un bloqueo exclusivo en la colección de documentos.
  • En el marco de la iniciativa para eliminar términos políticamente incorrectos, el comando isMaster y el método db.isMaster() han sido renombrados a hello y db.hello().
  • Se ha modificado el esquema de numeración de lanzamientos y se ha establecido un calendario predecible para la formación de versiones. Se generará un lanzamiento significativo una vez al año (5.0, 6.0, 7.0), lanzamientos intermedios cada tres meses con nuevas funciones (5.1, 5.2, 5.3) y actualizaciones correctivas según sea necesario, corrigiendo errores y vulnerabilidades (5.1.1, 5.1.2, 5.1.3). En los lanzamientos intermedios se desarrollarán las funcionalidades para el próximo lanzamiento significativo, es decir, en MongoDB 5.1, 5.2 y 5.3 se crearán nuevas funcionalidades para la versión MongoDB 6.0.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster