Docs Menu
Docs Home
/ /

Notas de versión de MongoDB 8.0

Esta página describe los cambios y las nuevas características introducidas en MongoDB 8.0.

MongoDB 8.0 es una versión principal, lo que significa que es compatible tanto con MongoDB Atlas como con implementaciones on-premises. MongoDB 8.0 incluye los cambios introducidos en las versiones rápidas de MongoDB 7.1, 7.2 y 7.3. Esta página describe los cambios introducidos en esas versiones rápidas y MongoDB 8.0.

MongoDB Atlas ejecuta la actualización automática para clústeres dedicados (M10+) a la versión principal si Latest Release (auto-upgrades) La opción está habilitada. Si desea actualizar su MongoDB Atlas manualmente, consulte Actualice un clúster a una nueva versión de MongoDB. Para obtener más información sobre las versiones de clústeres de MongoDB en Atlas, consulte ¿Qué versiones de MongoDB usan los clústeres de Atlas?

Para obtener más información sobre las diferencias entre las versiones principales y rápidas, consulte Control de versiones de MongoDB.

Advertencia

Limitaciones de versiones pasadas

Los avisos críticos a continuación afectan a algunas versiones anteriores de MongoDB. Si la implementación depende de características afectadas por un aviso crítico, se debe actualizar a la última versión disponible del parche.

Problema
Versiones afectadas

8.0.0 - 8.0.3

8.0.0 - 8.0.3

Importante

MongoDB 8.0.18 contiene una solución para:

Para obtener la información más reciente sobre las actualizaciones de seguridad de MongoDB, consulte Boletines de seguridad de MongoDB.

Problemas corregidos:

Importante

MongoDB 8.0.17 contiene una corrección para CVE-202514847-.

Para obtener la información más reciente sobre las actualizaciones de seguridad de MongoDB, consulte Boletines de seguridad de MongoDB.

Problemas corregidos:

Problemas corregidos:

  • SERVIDOR-82688: Corrige un error que provocaba que mongod se bloqueara cuando el número de conexiones excedía el límite de session_max de WiredTiger.

  • SERVIDOR-95374: Resuelve un problema en el que los índices comodín compuestos podían hacer que los predicados se desplazaran incorrectamente hacia abajo durante la planificación de la unión o de la consulta.

  • SERVIDOR-103960: Implemente una comprobación adecuada de validación en la ruta de campo para asegurar que el número de partes no supere 255.

  • SERVIDOR-:108565 Mejorar el manejo de escrituras de gran tamaño en colecciones de series de tiempo.

  • SERVIDOR-112467: Mejora el seguimiento y el reporte sobre el número de conexiones de proxy pendientes.

  • SERVIDOR-112520: Corrige un fallo al escribir en un índice geográfico al insertar un documento en un bucket existente en una colección de series de tiempo.

  • WT-9575: Corrige un problema en el que las páginas con actualizaciones más recientes que el ID de transacción más antiguo no se ponían en cola para ser desalojadas.

  • WT-15225: Corrige un problema de EBUSY para las tablas recién creadas y las operaciones drop().

  • Todos los problemas de JIRA cerrados en 8.0.16

  • 8.0.16 Registro de cambios

Importante

El uso después de liberar memoria en el planificador de consultas del servidor MongoDB puede provocar un bloqueo o un comportamiento indefinido.

Descripción: un usuario autorizado puede hacer que el servidor MongoDB se bloquee provocando una sobrelectura del búfer. Esto puede ocurrir cuando se ejecuta una operación DDL mientras se ejecutan las consultas.

Puntuación CVSS: 5.3

CWE: 416 Uso después de liberar

Versiones de producto afectadas: MongoDB Server 8.2.0, 8.0.14 a 8.0, 7.0.24 a 7.0 y versiones principales anteriores al final de su ciclo de vida.

Problemas corregidos:

Problemas corregidos:

  • SERVIDOR-100448: El registro de comandos no debe depender de la compatibilidad de características entre versiones al inicio.

  • SERVIDOR-103742: opWriteConcernCounters puede incrustar ilegalmente bytes NUL en ServerStatus.

  • SERVIDOR-103841: Fuga de memoria en TransactionCoordinator asociada a una fuente de cancelación prolongada.

  • SERVIDOR-105478: Separar las entradas de oplog elegibles y no elegibles para el aplicador con secondaryDelaySecs.

  • WT-14140: Se ha tomado un bloqueo de esquema innecesario para los identificadores de datos activos de "archivo:" que no se gestionan activamente.

  • WT-14653: Agrega registros/estadísticas a la conciliación para el seguimiento de las actualizaciones de HS

  • Todos los problemas de JIRA cerrados en 8.0.14

  • 8.0.14 Registro de cambios

Problemas corregidos:

Cambios de compatibilidad:

  • SERVIDOR-:103927 Cambia la forma en que se construye el servidor utilizando Bazel en lugar de SCons

Importante

Debido a CVE-2025-10061, en MongoDB 8.0 anterior a 8.0.12, un usuario autorizado puede provocar un bloqueo en MongoDB Server a través de una query $group especialmente diseñada. Esta vulnerabilidad está relacionada con la incorrecta gestión de ciertas funciones acumuladoras cuando se especifican parámetros adicionales dentro de la operación $group. Esta vulnerabilidad podría llevar a una denegación de servicio si se activa repetidamente.

Este problema afecta a las siguientes versiones de MongoDB Server:

  • 8.1.0 - 8.1.1

  • 8.0.0 - 8.0.11

  • 7.0.0 - 7.0.21

  • 6.0.0 - 6.0.24

Puntuación CVSS: 6.5

CWE: CWE-20 Validación incorrecta de entrada

Problemas corregidos:

Problemas corregidos:

Importante

Una respuesta KMIP malformada puede resultar en una violación de acceso de lectura.

Debido a CVE-2025-12657, en MongoDB 8.0 anterior a 8.0.10, el analizador de respuestas KMIP integrado en los binarios mongo es excesivamente tolerante a ciertos paquetes malformados y puede convertirlos en objetos no válidos. Lecturas posteriores de este objeto pueden provocar infracciones de acceso de lectura.

Este problema afecta a las siguientes versiones de MongoDB Server:

  • 8.0.0 - 8.0.9

  • 7.0.0 - 7.0.21

Puntuación CVSS: 5.9

CWE: CWE-754: Verificación inadecuada de condiciones inusuales o excepcionales

Problemas corregidos:

Importante

La corrección para el manejo incorrecto de datos incompletos puede impedir que mongos acepte nuevas conexiones

Debido a CVE-2025-,6714 en MongoDB 8.0 anterior 8.0.9 a, el componente de MongoDB Server mongos puede dejar de responder a nuevas conexiones debido al manejo incorrecto de datos incompletos. Este problema afecta a los clústeres fragmentados de MongoDB configurados con compatibilidad con balanceadores de carga para que mongos usan HAProxy en puertos específicos.

Este problema afecta a las siguientes versiones de MongoDB Server:

  • 8.0.0 - 8.0.8

  • 7.0.0 - 7.0.19

  • 6.0.0 - 6.0.22

Puntuación CVSS: 7.5

CWE: CWE-834 Iteración excesiva Y CWE-400 Consumo incontrolado de recursos

Problemas corregidos:

Problemas corregidos:

Importante

MongoDB Server puede ser susceptible a la escalada de privilegios debido a la etapa $mergeCursors

Debido al CVE-2025-6713, en MongoDB 8.0 anterior a la 8.0.7, un usuario no autorizado puede aprovechar un pipeline de agregación especialmente diseñado para acceder a datos sin la debida autorización debido a un manejo inadecuado de la etapa $mergeCursors en MongoDB Server. Esto puede conducir al acceso a datos sin la debida autorización adicional.

Este problema afecta a las siguientes versiones de MongoDB Server:

  • 8.0.0 - 8.0.6

  • 7.0.0 - 7.0.18

  • 6.0.0 - 6.0.21

Puntuación CVSS: 7.7

CWE: CWE-285: Autorización inadecuada

Problemas corregidos:

  • SERVER-106752 MongoDB Server puede ser susceptible a la escalada de privilegios debido a la etapa $mergeCursors

Problemas corregidos:

Importante

Vulnerabilidad en la autenticación previa de denegación de servicio en la autenticación OIDC de MongoDB Server

Debido a CVE-2025-6709, en MongoDB 8.0 anterior a la versión 8.0.5, MongoDB Server es susceptible a una vulnerabilidad de denegación de servicio debido al manejo inadecuado de valores de fecha específicos en la entrada JSON al utilizar la autenticación OIDC. Esto se puede reproducir usando el shell de Mongo para enviar una carga útil JSON maliciosa que genera una falla invariante y la caída del servidor.

Este problema afecta a las siguientes versiones de MongoDB Server:

  • 8.0.0 - 8.0.4

  • 7.0.0 - 7.0.16

El mismo problema afecta a MongoDB Server v6.0, pero un atacante solo puede inducir una denegación de servicio después de autenticarse. Este problema afecta a las siguientes versiones de MongoDB Server:

  • 6.0.0 - 6.0.20

Puntuación CVSS: 7.5

CWE: CWE-20: Validación incorrecta de entrada

Importante

Vulnerabilidad de Stack Overflow de denegación de servicio antes de la autenticación en el análisis de JSON mediante recursión excesiva en MongoDB

Debido a CVE-2025-6710, en MongoDB 8.0 anterior a la versión 8.0.5, MongoDB Server puede ser susceptible a un stack overflow debido al mecanismo de análisis de JSON, donde entradas JSON específicamente diseñadas pueden inducir niveles de recursión no deseados, y resultar en un consumo excesivo de espacio en la pila. Dichas entradas pueden provocar un stack overflow que cause el bloqueo del servidor, lo cual podría ocurrir antes de la autorización.

Este problema afecta a las siguientes versiones de MongoDB Server:

  • 8.0.0 - 8.0.4

  • 7.0.0 - 7.0.16

El mismo problema afecta a MongoDB Server v6.0, pero un atacante solo puede inducir una denegación de servicio después de autenticarse. Este problema afecta a las siguientes versiones de MongoDB Server:

  • 6.0.0 - 6.0.20

Puntuación CVSS: 7.5

CWE: CWE-674: Recursividad no controlada

Problemas corregidos:

  • SERVIDOR-51366 Configura las carpetas creadas por el instalador

  • SERVIDOR-93497 Mueve la invalidación de la caché de usuario de OpObserver a los controladores onCommit

  • SERVIDOR-95672 Los índices en campos de arreglos que contienen subarreglos no incluyen algunos resultados.

  • SERVIDOR-97044 Corrige un problema en el que los flujos de cambio podrían generar incorrectamente un evento de "descarte" durante la re-fragmentación o desfragmentación de una colección que está o estaba utilizando la fragmentación por zonas.

  • SERVIDOR-97860 La ruta Express puede devolver resultados incorrectos al escanear un índice único de múltiples campos

  • SERVIDOR-99290 Las colecciones de buckets de series de tiempo no válidas impiden la finalización de la compatibilidad de características entre versiones 8.0 actualizar

  • SERVIDOR-99345 Evita la sharding o el movimiento de una colección de cubos de serie de tiempo sin las opciones de 'timeseries' en compatibilidad de características entre versiones 8.0+

  • SERVER-106748 Denegación de servicio previa a la autenticación al aceptar la autenticación OIDC

  • SERVER-106749 Vulnerabilidad de denegación de servicio por Stack Overflow previa a la autenticación en el análisis de JSON mediante recursión excesiva en MongoDB

  • WT-12846 Corrige cómo el recorrido compacto gestiona EBUSY desde el flush_lock del punto de control

  • Todos los problemas de Jira cerrados en 8.0.5.

  • 8.0.5 Registro de cambios

Importante

La neutralización inadecuada de bytes nulos puede llevar a sobrelecturas de búfer en MongoDB Server.

En MongoDB 8.0 y 8.0.1, un usuario autorizado puede activar fallos o recibir el contenido de sobrelecturas de búfer de la memoria del servidor al emitir solicitudes especialmente diseñadas que construyan BSON malformados en MongoDB Server.

Este problema afecta a las versiones de MongoDB Server:

  • 5.0.0 - 5.0.29

  • 6.0.0 - 6.0.18

  • 7.0.0 - 7.0.14

  • 8.0.0 - 8.0.1

Problemas corregidos:

Problemas corregidos:

El resto de esta página describe los cambios y las nuevas funcionalidades introducidas en MongoDB 8.0.

Esta sección describe problemas conocidos en MongoDB 8.0 y su estado de resolución.

En versión
Problema
Estado

8.0.18, 8.0.19

SERVIDOR-:118428 Los cambios en mongocryptd limitan el tamaño máximo de los mensajes que mongocryptd puede recibir a 16 KiB. Los usuarios pueden experimentar este problema al enviar comandos de más de 16 KiB mediante cifrado automático a nivel de campo del lado del cliente (CSFLE) o cifrado consultable.

To avoid this bug, skip these versions when you upgrade mongocryptd or use the crypt_shared library.

Irresoluto.

MongoDB 8.0 introduce mejoras significativas en el rendimiento de MongoDB 7.0, incluyendo, pero no limitándose a:

  • Hasta un 36% mejor rendimiento de lectura.

  • Hasta un 32% mejor rendimiento para aplicaciones web típicas.

  • Escrituras concurrentes hasta un 20% más rápidas durante la replicación.

Nota

La cantidad de mejora del rendimiento puede variar según la configuración de tus cargas de trabajo e instancias de base de datos.

Tip

A partir de MongoDB 8.0, se puede utilizar el nuevo comando bulkWrite para realizar muchas operaciones de inserción, actualización y borrado en varias colecciones en una sola solicitud. El método existente db.collection.bulkWrite() solo permite modificar una colección por solicitud.

bulkWrite las operaciones en MongoDB 8.0 pueden ejecutarse hasta un 56% más rápido que las operaciones de guardado masivo en MongoDB 7.0.

A partir de la versión 8.0, MongoDB puede ejecutar ciertas consultas de series de tiempo mediante procesamiento por bloques. Esta mejora del rendimiento procesa las consultas en "bloques" de datos, en lugar de en valores individuales. El procesamiento de bloques mejora la velocidad de ejecución de las consultas y el rendimiento cuando se trabaja con colecciones de series de tiempo.

En comparación con las queries de series de tiempo ejecutadas en MongoDB 7.0 o versiones anteriores, el procesamiento de bloques para datos de series de tiempo en MongoDB 8.0 puede manejar volúmenes más altos de datos y mejorar el rendimiento en algunos casos en más del 200% para $group operaciones y las query analíticas.

Para ver si su consulta de serie de tiempo utiliza el procesamiento de bloques, verifique el campo explain.queryPlanner.winningPlan.slotBasedPlan.stages en la salida del plan de explicación.

Para aprender más, consulte Procesamiento de bloques.

A partir de MongoDB 8.0, las nuevas versiones de MongoDB Server (mayor y menor) son compatibles con la versión menor mínima del sistema operativo (SO) definida por el proveedor del sistema operativo. Una vez que el proveedor del sistema operativo deja de admitir una versión menor del sistema operativo, MongoDB actualiza el MongoDB Server para admitir la siguiente versión menor del sistema operativo. Para obtener más detalles, consulta Mejoras en el soporte de la plataforma MongoDB.

MongoDB 8.0 es compatible con las siguientes versiones mínimas menores del sistema operativo:

  • Red Hat Enterprise Linux 8.8

  • Red Hat Enterprise Linux 9.3

  • SUSE Linux Enterprise Servidor 15 SP5

  • Amazon Linux 2023 versión 2023.3

A partir de MongoDB 8.0, puede configurar el perfilador de base de datos para el registro de operaciones lentas en función del tiempo que MongoDB dedica a esa operación, en lugar de la latencia total de la operación. Esto significa que factores como la espera de bloqueos y el control de flujo no afectan si una operación supera el umbral de operación lenta.

Este cambio ofrece las siguientes mejoras para el registro y el análisis de queries:

  • Los queries lentos se registran con mayor precisión en función del tiempo que MongoDB dedica al procesamiento del query.

  • Las herramientas de análisis de query, como el perfilador del query, Performance Advisor y Telemetría de consulta de búsqueda, informan de operaciones lentas basadas en workingMillis en lugar de durationMillis. Este cambio proporciona una visión más precisa de las queries problemáticas.

  • Los registros de queries lentas incluyen una métrica para el tiempo en cola en los tickets de ejecución, queues.execution.totalTimeQueuedMicros. Esta métrica ayuda a identificar si una operación es lenta debido al tiempo que tarda en completarse o al tiempo que pasa esperando para comenzar.

Para obtener más información, consulta db.setProfilingLevel().

Cuando especifiques un filtro para el perfilador de base de datos, podrás registrar operaciones en función de la nueva métrica workingMillis. Puedes registrar las operaciones en función de workingMillis y durationMillis, y establecer cada métrica en un umbral diferente.

A partir de MongoDB 8.0, puedes usar el operador $convert para realizar las siguientes conversiones:

  • String values to binData values

  • valores de binData a valores de string

MongoDB 8.0 también incluye una nueva expresión$toUUID auxiliar,, que proporciona una sintaxis simplificada para convertir cadenas a Valores UUID.

A partir de MongoDB 7.1, la etapa $queryStats devuelve estadísticas para los queries registrados.

A partir de MongoDB 8.0, $queryStats mejora el seguimiento y el reporte de métricas para flujos de cambios. Para obtener más información, consulta Comportamiento de Change Streams $queryStats.

A partir de MongoDB 8.0, valores null y valores de campo faltantes en $denseRank y $rank en las operaciones sortBy se tratan de la misma manera al calcular los rankings. Este cambio hace que el comportamiento de denseRank y rank sean coherentes con $sort.

A partir de MongoDB 8.0, Queryable Encryption admite queries de rango en campos cifrados con los operadores $lt, $lte, $gt y $gte. Para obtener más detalles, consulta Operaciones compatibles con Queryable Encryption. Para activar queries de rango en campos cifrados, consulta Crea un esquema de cifrado.

A partir de MongoDB 8.0, puedes especificar el esquema OCSF para los mensajes de registro de auditoría. El esquema OCSF proporciona registros en un formato estandarizado compatible con los procesadores de registros.

Para establecer el esquema utilizado para los mensajes de registro, utilice la opción de archivo de configuración auditLog.schema.

Por ejemplo, para ver mensajes de registro en formato OCSF, consulta Mensajes de auditoría de esquema OCSF.

MongoDB 8.0 introduce una nueva cola para el control de admisión de ingreso. Las operaciones que esperan la entrada en la base de datos desde la red ingresan en la cola de entrada. Por defecto, la cola es ilimitada, lo que significa que MongoDB permite que todas las operaciones se ejecuten a través de esta etapa sin ninguna cola. Establecer el máximo de la cola a un valor específico le permite poner operaciones en cola en esta etapa si el número de operaciones concurrentes alcanza el límite especificado.

A partir de MongoDB 8.0, puedes desfragmentar colecciones y mover colecciones no fragmentadas entre particiones en clústeres fragmentados.

A partir de MongoDB 8.0, puede mover una colección no fragmentada a otro fragmento usando el comando moveCollection.

Para obtener más información, consulte Colecciones móviles. Para comenzar, consulte Mover una colección.

A partir de MongoDB 8.0, movePrimary no invalida las colecciones de eventos que tienen flujos de cambios. Los flujos de cambios pueden seguir leyendo eventos de las colecciones después de que las colecciones se trasladen a una nueva partición.

Para obtener más detalles, consulte Change Streams.

A partir de MongoDB 8.0, se puede desfragmentar las colecciones fragmentadas existentes con el comando unshardCollection o el método sh.unshardCollection(). Esta operación mueve todos los documentos de la colección a un fragmento especificado o al fragmento con la menor cantidad de datos.

Para obtener más información, consulte Colecciones fragmentadas. Para comenzar, consulte Fragmentar una colección.

A partir de MongoDB 8.0, puede configurar un servidor de configuración para almacenar los datos de su aplicación además de los metadatos habituales de clústeres fragmentados. Un nodo mongod que proporciona tanto la funcionalidad de servidor de configuración como de servidor de fragmentos se denomina fragmento de configuración. Un nodo mongod que se ejecuta como un --configsvr autónomo sin funcionalidad de servidor de fragmentos se denomina servidor de configuración dedicado.

Para configurar un servidor de configuración dedicado para que funcione como un fragmento de configuración, ejecute el comando transitionFromDedicatedConfigServer.

Para configurar un fragmento de configuración para que funcione como un servidor de configuración dedicado, ejecute el comando transitionToDedicatedConfigServer.

Para obtener más información, consulta partición de configuración. Para comenzar, ve Iniciar un clúster fragmentado con una partición de configuración. Para convertir un set de réplicas en un clúster con una partición de configuración, consulta Convertir un set de réplicas en un clúster con un servidor de configuración incrustado.

A partir de MongoDB 8.0, serverStatus incluye los siguientes nuevos campos shardingStatistics en su salida:

MongoDB 7.1 incluye las siguientes nuevas estadísticas de fragmentación para las migraciones de fragmentos:

A partir de MongoDB 7.2, cuando realices la partición de una colección vacía con una clave de fragmentación encriptada, la operación crea un fragmento por partición por defecto. Anteriormente, la operación creaba dos fragmentos por defecto.

A partir de MongoDB 8.0, se puede utilizar el rol directShardOperations para realizar operaciones de mantenimiento que requieren ejecutar comandos directamente contra un fragmento.

Advertencia

Ejecutar comandos usando el rol de directShardOperations puede hacer que su clúster deje de funcionar correctamente y puede causar corrupción de datos. Utilice el rol de directShardOperations solo para fines de mantenimiento o bajo la orientación del soporte de MongoDB. Una vez que haya terminado de realizar las operaciones de mantenimiento, deje de usar el rol de directShardOperations.

A partir de MongoDB 8.0.5, puede ejecutar dbHash directamente en un fragmento. Para obtener una lista completa de los comandos directos de nodos, consulte Comandos directos de nodos fragmentados.

A partir de MongoDB 7.1, mongos brinda soporte para cursores exhaustivos cuando la solicitud getMore de un cliente establece la bandera exhaustAllowed. Esto puede mejorar el rendimiento de los queries en los clústeres fragmentados cuando el cliente recibe varias respuestas del servidor de la base de datos para una única solicitud.

A partir de MongoDB 7.1, mongos acepta valores de --port en el rango de [0, 65535]. Para obtener más información, consulta --port.

A partir de MongoDB 7.1, findAndModify y deleteOne() pueden usar una clave de fragmentación parcial para hacer un query en una colección fragmentada.

MongoDB 8.0 introduce mejoras significativas en el rendimiento de las operaciones de reconfiguración de fragmentos, reduciendo sustancialmente el tiempo que tarda en ejecutarse la operación.

Además, si la aplicación y el clúster cumplen con los requisitos y las limitaciones necesarios, se puede volver a realizar la partición de la colección con la misma clave utilizando el comando reshardCollection para redistribuir la colección, lo cual es mucho más rápido que el procedimiento de migración de rango alternativo.

Se añaden las siguientes opciones al comando:

Campo
Descripción

forceRedistribution

Permite que se vuelva a realizar la partición con la misma clave.

Para ver ejemplos, consulta Redistribuir datos a nuevas particiones.

A partir de MongoDB 7.1, los comandos fsync y fsyncUnlock pueden realizar operaciones de fsync en clústeres fragmentados.

Cuando se ejecuta en mongos con el campo lock establecido en true, el comando fsync vacía los elementos guardados de la capa de almacenamiento al disco y bloquea cada fragmento, lo que evita guardados adicionales. Luego, el comando fsyncUnlock puede utilizarse para desbloquear el clúster.

Esta funcionalidad permite copias de seguridad autogestionadas de clústeres particionados utilizando mongodump.

A partir de MongoDB 7.1, cuando utilices updateOne() con upsert: true en una colección fragmentada, no necesitas incluir la clave de fragmentación completa en el filtro.

A partir de MongoDB 8.0, se puede utilizar la etapa $lookup dentro de una transacción mientras se hace el direccionamiento a una colección fragmentada.

A partir de MongoDB 8.0, las operaciones de escritura que utilizan el nivel de confirmación de escritura "majority" devuelven un reconocimiento cuando la mayoría de los nodos del set de réplicas han escrito la entrada del oplog para el cambio. Esto mejora el rendimiento de las operaciones de escritura "majority". En versiones anteriores, estas operaciones esperaban y devolvían una confirmación después de que la mayoría de los nodos del set de réplicas aplicaran el cambio.

Si su aplicación lee desde una réplica secundaria inmediatamente después de recibir la confirmación de una operación de escritura { w: "majority" } (sin una sesión causalmente coherente), la consulta puede devolver resultados que no incluyan los cambios de la escritura.

A partir de MongoDB 8.0, las siguientes métricas están disponibles al utilizar el comando replSetGetStatus:

A partir de MongoDB 8.0, los secundarios escriben y aplican entradas del oplog para cada agrupación en paralelo. Un hilo escritor lee nuevas entradas del primario y las escribe en el registro de operaciones local. Un hilo aplicador aplica estos cambios de forma asíncrona a la base de datos local. Este cambio aumenta el rendimiento de la replicación para los secundarios.

Esto introduce un cambio disruptivo para metrics.repl.buffer, ya que ahora proporciona métricas sobre dos búferes en lugar de uno.

MongoDB 8.0 desaprueba las siguientes métricas de estado del servidor:

MongoDB 8.0 incorpora las siguientes métricas de estado del servidor:

A partir de MongoDB 8.0, MongoDB utiliza una versión mejorada de TCMalloc que utiliza cachés por CPU, en lugar de cachés por hilo, para reducir la fragmentación de la memoria y hacer que la base de datos sea más resistente a cargas de trabajo de alta presión.

La nueva versión de TCMalloc afecta directamente las recomendaciones de producción anteriores para Transparent Huge Pages. Para obtener más información, consulte Optimización del rendimiento de TCMalloc para una implementación autogestionada.

A partir de MongoDB 8.0, las siguientes nuevas métricas de serverStatus informan sobre el uso de tcmalloc:

A partir de MongoDB 8.0, Bulk.insert() y las cargas de trabajo de ingesta de datos pueden rendir mejor. Sin embargo, el apagado de MongoDB inmediatamente después de ejecutar estas cargas de trabajo podría tardar más debido a que los datos extra se vacían en el disco.

A partir de MongoDB 8.0, puedes configurar un servidor de configuración para almacenar datos de aplicaciones además de los metadatos habituales de clúster fragmentado. El servidor de configuración se conoce entonces como un fragmento de configuración. Para obtener más detalles, consulta Fragmentos de configuración.

A partir de MongoDB 7.3, el comando compact incluye una nueva opción freeSpaceTargetMB para especificar la cantidad mínima de espacio de almacenamiento, en megabytes, que debe ser recuperable para que la compactación pueda proceder.

A partir de MongoDB 8.0, puedes utilizar el nuevo comando autoCompact para realizar una compactación en segundo plano. Si se activa la opción, el servidor intenta mantener el espacio libre dentro de cada colección e índice por debajo del valor especificado freeSpaceTargetMB.

Si se activa la opción, el comando compact devuelve una estimación de cuánto espacio, en bytes, puede recuperar la compactación de la colección objetivo. Si ejecutas compact con dryRun establecido en true, MongoDB solo devuelve el valor estimado y no realiza ningún tipo de compactación.

A partir de MongoDB 7.1, cuando ejecutas varias operaciones DDL que se dirigen a diferentes colecciones de la misma base de datos, MongoDB ejecuta esas operaciones de manera simultánea.

Este cambio añade dos nuevos tipos al campo serverStatus locks y a la salida currentOp.locks:

  • DDLDatabase

  • DDLCollection

A partir de MongoDB 7.2, las consultas de la canalización de agregación que intentan utilizar bases de datos inexistentes en implementaciones de mongos devuelven errores de validación.

En versiones anteriores, estas consultas de agregación devolvían cursores vacíos.

En MongoDB 8.0, si agregas o remueves un fragmento mientras el clúster ejecuta una operación DDL (operación que modifica una colección, como reshardCollection), cualquier operación que agregue o elimine un fragmento solo se ejecutará después de que la operación DDL simultánea termine.

A partir de MongoDB 7.1, un comando de agregación generará un error cuando una pipeline supere el límite de etapas de la pipeline. Para obtener más detalles, consulta Restricciones de número de etapas.

A partir de MongoDB 7.2, puedes especificar cualquier expresión válida que se resuelva en un string para la entrada field del operador $getField. En versiones anteriores, field solo acepta constantes de string.

A partir de MongoDB 7.1, la creación de índices se mejora con un reporte de errores más rápido y una mayor resiliencia ante fallos. También puedes establecer el espacio mínimo disponible en disco necesario para la creación de índices utilizando el nuevo parámetro indexBuildMinAvailableDiskSpaceMB, que detiene la creación de índices si el espacio en disco es demasiado bajo.

Se agregaron las siguientes nuevas métricas de creación de índices:

Para obtener todos los detalles, consulta Creación de índices.

MongoDB 7.1 agrega el parámetro de clúster auditConfig, que incluye información sobre las configuraciones de auditoría de las instancias de servidor mongod y mongos.

A partir de MongoDB 8.0, puedes utilizar el parámetro de clúster defaultMaxTimeMS para especificar un límite de tiempo por defecto para que se completen las operaciones de lectura individuales.

MongoDB 7.1 agrega el parámetro indexBuildMinAvailableDiskSpaceMB, que permite establecer el espacio mínimo disponible en disco necesario para la creación de índices.

A partir de MongoDB 8.0, el tcmallocEnableBackgroundThread está activado por defecto. Esto permite a MongoDB liberar periódicamente memoria al sistema operativo.

MongoDB 8.0 introduce una nueva forma del query. La forma del query preexistente se renombra como la forma del query de la caché del plan.

A partir de MongoDB 8.0, puedes agregar configuraciones de query para la nueva forma del query. El optimizador del query utiliza la configuración del query como una entrada adicional durante la planificación del query, lo que afecta el plan seleccionado para ejecutar un query que tiene una forma del query que coincide.

La configuración del query tiene una funcionalidad mejorada en comparación con los filtros de índice. Los filtros de índice también quedan en desuso a partir de MongoDB 8.0, y debes evitar usarlos.

A partir de MongoDB 8.0, queryShapeHash se incluye en el siguiente resultado:

A partir de MongoDB 8.0, el campo queryHash existente se duplica en un nuevo campo llamado planCacheShapeHash. Si estás utilizando una versión anterior de MongoDB, solo verás el campo queryHash. Las versiones futuras de MongoDB removerán el campo queryHash obsoleto y deberás utilizar el campo planCacheShapeHash en su lugar.

A partir de MongoDB 7.2, la opción numInitialChunks se elimina del comando shardCollection. El servidor crea automáticamente fragmentos en cada fragmento de un clúster cuando utiliza fragmentación encriptada para una colección vacía.

A partir de MongoDB 8.0, el comando getParameter acepta un campo setAt. Puedes utilizar este campo para filtrar el documento de retorno allParameters: true y mostrar solo aquellos parámetros que puedes establecer en el inicio o tiempo de ejecución.

A partir de MongoDB 8.0, puedes usar el nivel de consistencia de lectura "snapshot" en colecciones con tamaño fijo.

A partir de MongoDB 7.1, la salida del comando serverStatus incluye las siguientes métricas nuevas:

A partir de MongoDB 7.2, la salida del comando serverStatus incluye las siguientes métricas nuevas:

A partir de MongoDB 7.3, la salida del comando serverStatus incluye las siguientes métricas nuevas:

A partir de MongoDB 8.0, la salida del comando serverStatus incluye las siguientes métricas nuevas:

A partir de MongoDB 8.0, updateOne(), replaceOne() y update tienen un campo opcional sort para ordenar documentos antes de aplicar una actualización.

Las versiones anteriores utilizan los métodos findAndModify() y findOneAndUpdate() para actualizar el primer documento en un orden de clasificación determinado por el usuario. El soporte para escrituras reintentables requiere que estos métodos copien todo el documento en una colección paralela especial para cada nodo, lo cual es una operación más costosa que el método updateOne() con la nueva opción sort.

A partir de MongoDB 7.1, el campo hint está disponible en el comando distinct, lo que permite especificar el índice de la query.

A partir de MongoDB 7.1, puedes crear índices TTL en colecciones con tamaño fijo.

A partir de MongoDB 8.0, un conjunto limitado de queries (incluidas las coincidencias exactas _id) omiten la planificación y ejecución de queries habituales. En cambio, estos queries utilizan un plan de escaneo de índice optimizado que consta de una de estas etapas del plan:

  • EXPRESS_CLUSTERED_IXSCAN

  • EXPRESS_DELETE

  • EXPRESS_IXSCAN

  • EXPRESS_UPDATE

Para obtener más información sobre los planes del query, consulta Explicación de resultados.

A partir de MongoDB 8.0, los planes del query rechazados solo contienen la parte find del query. En versiones anteriores, los planes rechazados podían incluir etapas de agregación como $group. El planificador del query no utiliza esas etapas de agregación para elegir el plan ganador, por lo que el campo rejectedPlans solo incluye la parte del query que se utilizó para elegir el plan ganador.

Este cambio también garantiza que executionStats para los planes rechazados no sean cero. Por lo tanto, ahora puedes ver estadísticas como cuántos documentos o claves examinó un plan rechazado.

Para obtener más información sobre los planes del query rechazados, consulta explain.queryPlanner.rejectedPlans.

A partir de MongoDB 8.0, MongoDB desactiva automáticamente el motor de ejecución basado en ranuras en colecciones con un índice que tiene un prefijo de ruta encriptada de una ruta no encriptada, donde ambas rutas están en el índice.

A partir de MongoDB 8.0, las operaciones de inserción masiva fuera de las transacciones pueden dejar de producir entradas oplog individuales. En cambio, MongoDB suele agrupar las inserciones masivas como una única entrada. El evento de flujo de cambios insert para cada documento tiene el mismo clusterTime.

Este cambio mejora el rendimiento de las operaciones de inserción de varios documentos y elimina el posible atraso de la replicación causado por múltiples escrituras de oplog.

A partir de MongoDB 8.0, cuando se definen varios proveedores de identidad (IDP), el parámetro oidcIdentityProviders acepta valores issuer duplicados siempre que el valor audience sea único para cada emisor. También está disponible en las versiones 7.3 y 7.0.

A partir de MongoDB 8.0, los namespaces en subcanalizaciones dentro de $lookup y $unionWith se validan para asegurar el uso correcto de los campos from y coll.

Para más información, consulte las subcanalizaciones $lookup y las subcanalizaciones $unionWith.

El método explain() ahora devuelve información sobre el tiempo de optimización del planificador de query. El estado de queryPlanner.optimizationTimeMillis muestra el tiempo en milisegundos que el planificador de query dedicó a las optimizaciones.

Importante

Compatibilidad de características entre versiones

Para actualizar a MongoDB 8.0 desde una implementación 7.0, la implementación 7.0 debe tener featureCompatibilityVersion configurado en 7.0. Para verificar la versión:

db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )

Para actualizar a MongoDB 8.0, se debe consultar las instrucciones de actualización específicas para la implementación de MongoDB:

Si necesitas orientación sobre la actualización a 8.0, los servicios profesionales de MongoDB brindan soporte para la actualización de versiones principales para ayudar a garantizar una transición fluida y sin interrupciones en la aplicación de MongoDB. Para obtener más información, consulta Consultoría de MongoDB.

Para descargar MongoDB 8.0, dirígete al Centro de descargas de MongoDB.

MongoDB solamente soporta degradaciones de una única versión. No se puede retroceder a una versión que esté varias versiones por detrás de la versión actual.

Por ejemplo, puedes degradar una implementación de la serie 8.0 a una de la serie 7.0. Sin embargo, no se brinda soporte a seguir degradando esa implementación de la serie 7.0 a una implementación de la serie 6.0.

  • MongoDB Community Edition no brinda soporte a las degradaciones binarias.

  • No puede degradar la compatibilidad de características entre versiones de su implementación a o desde una versión de lanzamiento rápido de MongoDB.

  • Si actualizas o degradas la compatibilidad de características entre versiones de tu implementación, no puedes degradar la versión binaria de tu implementación para empresas sin asistencia de soporte.

Volver

Registro de cambios

En esta página