Introducción
MongoDB ha cambiado de forma profunda desde la versión 4.4.10. Aunque aquella revisión ya pertenecía a una plataforma madura, la distancia técnica entre MongoDB 4.4 y las versiones actuales no se limita a una colección de funciones nuevas. En estos años han evolucionado el modelo de versiones, el motor de ejecución de consultas, el tratamiento de series temporales, el cifrado de datos, la administración de clústeres fragmentados, la observabilidad y las posibilidades para controlar el comportamiento de las consultas.
A fecha de 16 de julio de 2026, la documentación oficial identifica MongoDB 8.3 como la serie estable vigente. MongoDB 8.0 continúa siendo una versión mayor especialmente relevante, pero las series 8.2 y 8.3 han introducido el nuevo esquema de versiones menores estables que también pueden instalarse en determinados entornos autogestionados. Por tanto, al hablar de la versión estable actual conviene diferenciar entre la última versión mayor de ciclo largo y la última serie estable publicada.
Esta evolución afecta de manera directa a cualquier profesional o pequeña empresa que mantenga una aplicación antigua, administre MongoDB en un servidor propio o esté valorando una migración. Actualizar desde 4.4.10 no consiste en sustituir paquetes de una sola vez: requiere avanzar por las versiones intermedias, comprobar controladores, revisar funciones obsoletas, validar consultas y planificar la compatibilidad de datos.
Índice
MongoDB 4.4.10 como punto de partida
MongoDB 4.4.10 era una actualización de mantenimiento de la rama 4.4, no una versión mayor independiente. Para entender la comparación conviene tomar como referencia las capacidades generales de MongoDB 4.4: replicación mediante conjuntos de réplicas, fragmentación horizontal, transacciones multidocumento, canalizaciones de agregación, índices variados y el motor de almacenamiento WiredTiger.
En ese momento MongoDB ya era una base de datos documental completa y apta para producción. Sin embargo, muchas tareas que hoy forman parte del producto todavía exigían más trabajo manual, herramientas externas o diseños específicos. Las colecciones de series temporales no tenían el nivel actual de integración, el control persistente de la planificación de consultas era más limitado, la redistribución de datos fragmentados resultaba más rígida y el cifrado consultable todavía no ofrecía las posibilidades disponibles en las versiones recientes.
También era habitual que una aplicación tratase MongoDB como un almacén documental relativamente simple: documentos BSON, índices, réplicas y consultas construidas desde un controlador. Desde entonces, el servidor se ha acercado a una plataforma de datos más amplia, con funciones especializadas para análisis temporal, sincronización de cambios, seguridad avanzada, búsqueda y explotación de cargas operativas complejas.
El cambio en el modelo de versiones
Uno de los cambios menos visibles, pero más importantes para la administración, es la evolución del propio sistema de versiones. Durante años, la referencia principal para instalaciones autogestionadas fueron las versiones mayores, como 4.4, 5.0, 6.0, 7.0 y 8.0. Entre ellas aparecían versiones rápidas que incorporaban funciones antes de la siguiente versión mayor.
MongoDB ha reorganizado este esquema. Desde la serie 8.2, determinadas versiones menores se publican también como versiones estables para MongoDB Atlas y para despliegues autogestionados. Por eso MongoDB 8.3 puede ser la versión estable actual aunque MongoDB 8.0 siga representando la gran transición mayor anterior.
Esta distinción tiene consecuencias prácticas:
- La numeración ya no debe interpretarse únicamente con la lógica antigua de versión mayor y parche.
- Una versión 8.3 puede incorporar funciones y cambios operativos relevantes respecto a 8.0.
- No todas las organizaciones necesitan adoptar inmediatamente cada versión menor estable.
- Las políticas de soporte, compatibilidad con herramientas y requisitos de migración deben comprobarse para la serie concreta.
En un servidor propio conviene decidir si se prioriza la permanencia en una rama mayor ampliamente desplegada o la adopción de una serie estable más reciente. Esa decisión debe apoyarse en necesidades reales, no solo en el deseo de instalar el número más alto.
MongoDB 5.0: series temporales y API estable
MongoDB 5.0 fue una de las transiciones más claras desde la etapa 4.4. Introdujo funciones que cambiaron tanto el desarrollo de aplicaciones como la gestión de datos especializados.
Colecciones de series temporales
Las colecciones de series temporales permitieron almacenar mediciones asociadas a fechas de forma más natural. Sensores, métricas de servidores, registros operativos, precios o lecturas de dispositivos podían organizarse mediante una estructura optimizada por el propio servidor. Antes era posible almacenar esta información en colecciones normales, pero el desarrollador debía asumir más decisiones de modelado, agrupación y mantenimiento.
Con las versiones posteriores, estas colecciones han seguido mejorando en compresión, consultas, índices, actualizaciones y procesamiento por bloques. La función que apareció como una especialización prometedora en MongoDB 5.0 se ha convertido en una parte importante de la plataforma actual.
API estable
La API estable permitió que las aplicaciones declarasen una versión de la API del servidor. El objetivo era reducir el riesgo de que cambios futuros afectasen a comandos y comportamientos utilizados por una aplicación. Esto no elimina la necesidad de probar las actualizaciones, pero proporciona una frontera de compatibilidad más clara entre el código cliente y el servidor.
Redistribución en clústeres fragmentados
MongoDB 5.0 incorporó la posibilidad de cambiar la clave de fragmentación mediante operaciones de resharding. En versiones anteriores, una mala elección de la clave podía obligar a procesos de migración mucho más costosos. Poder redistribuir una colección sin reconstruir manualmente toda la arquitectura supuso una mejora importante para sistemas que habían crecido de manera distinta a la prevista.
Funciones analíticas y ventanas
La agregación recibió funciones de ventana que acercaron MongoDB a determinados análisis habituales en sistemas relacionales y plataformas analíticas. Cálculos acumulados, posiciones, medias móviles y comparaciones entre documentos relacionados podían resolverse dentro de una canalización de agregación con menos lógica externa.
MongoDB 6.0: consultas, sincronización y cifrado
MongoDB 6.0 consolidó varias líneas abiertas en 5.0 y reforzó la idea de que MongoDB no era únicamente un almacén flexible de documentos. La versión amplió el tratamiento de consultas, eventos de cambio, series temporales y seguridad de datos.
Mejoras en los flujos de cambios
Los change streams permiten que una aplicación reciba eventos cuando se insertan, modifican o eliminan documentos. MongoDB 6.0 amplió la información disponible y facilitó casos como auditorías, sincronización, integración entre sistemas y actualización de procesos secundarios.
Para una microempresa, esta capacidad puede evitar sondeos constantes de la base de datos. En lugar de consultar cada pocos segundos si algo ha cambiado, una aplicación puede reaccionar ante eventos. No obstante, requiere diseñar correctamente la reanudación, el tratamiento de errores y la idempotencia de los procesos receptores.
Queryable Encryption
MongoDB avanzó en el cifrado consultable, que permite proteger determinados campos de forma que el servidor no necesite ver su contenido en claro para ejecutar ciertas consultas compatibles. Es una función especialmente relevante cuando se almacenan datos sensibles y se busca reducir la exposición de la información incluso frente a administradores de infraestructura.
El cifrado consultable no debe confundirse con el cifrado del disco o de la conexión TLS. Cada capa protege riesgos distintos. Además, utilizar campos cifrados introduce restricciones de consulta, requisitos de control de claves y costes de procesamiento que deben evaluarse antes de incorporarlo a una aplicación pequeña.
Más madurez para series temporales
Las colecciones temporales recibieron mejoras de rendimiento, índices y capacidad operativa. Esto confirmó que no eran una función experimental aislada, sino una línea de producto mantenida. Las empresas que recopilan métricas técnicas, consumos, estados de máquinas o datos periódicos encontraron una alternativa más integrada que el uso de colecciones convencionales.
Sincronización entre clústeres
La evolución de las herramientas de sincronización facilitó migraciones y replicaciones entre clústeres en determinados escenarios. Estas capacidades son útiles al cambiar de infraestructura, separar entornos o trasladar cargas hacia servicios administrados. Aun así, una migración real necesita comprobar versiones compatibles, topología, índices, volumen, ventanas de mantenimiento y comportamiento de la aplicación durante el cambio.
MongoDB 7.0: índices y operaciones más flexibles
MongoDB 7.0 continuó mejorando el rendimiento y añadió mecanismos que permiten adaptar mejor los índices y los eventos a documentos heterogéneos.
Índices wildcard compuestos
Los índices wildcard permiten indexar campos cuyos nombres o estructuras no están completamente definidos de antemano. MongoDB 7.0 añadió índices wildcard compuestos, en los que el componente flexible puede combinarse con otros campos conocidos. Esto resulta útil cuando una colección contiene atributos variables, pero las consultas suelen incluir también datos estables como un cliente, una categoría o un estado.
No deben utilizarse como sustituto automático de un diseño de índices. Un índice flexible puede ocupar mucho espacio y ofrecer menos precisión que varios índices bien seleccionados. Su valor aparece cuando el modelo realmente contiene propiedades dinámicas y las consultas siguen patrones identificables.
Eventos de cambio de gran tamaño
Los eventos de un change stream están sujetos al límite de tamaño de documento BSON. MongoDB 7.0 incorporó un mecanismo para dividir eventos grandes en fragmentos. Esto ayuda a manejar modificaciones voluminosas sin perder directamente el evento, aunque la aplicación consumidora debe reconstruir y tratar correctamente las partes.
Mejoras en agregación y administración
La rama 7.0 y sus versiones rápidas asociadas incorporaron operadores, acumuladores y mejoras de diagnóstico. También evolucionaron las construcciones de índices, los controles de espacio libre y la ejecución concurrente de determinadas operaciones de definición de datos.
El resultado fue una plataforma más manejable bajo carga, pero también más exigente desde el punto de vista de la observabilidad. Cuantas más posibilidades ofrece el servidor, más importante es registrar métricas, revisar planes de ejecución y documentar los parámetros que se apartan de los valores predeterminados.
MongoDB 8.0: rendimiento y administración avanzada
MongoDB 8.0 representa la mayor mejora reciente en rendimiento general y administración de cargas complejas. Según las cifras publicadas por MongoDB, la versión puede ofrecer hasta un 36 % más de rendimiento de lectura, hasta un 32 % de mejora en aplicaciones web típicas y hasta un 20 % más de velocidad en escrituras concurrentes durante la replicación. Estas cifras son referencias de laboratorio y pueden variar de manera considerable según los datos, los índices, la memoria y el patrón de consultas.
Nuevo comando bulkWrite entre colecciones
MongoDB 8.0 añadió un comando bulkWrite capaz de agrupar inserciones, actualizaciones y eliminaciones que afectan a varias colecciones en una sola solicitud. El método anterior de escritura masiva de colección seguía limitado a una colección concreta.
Esta función puede reducir viajes entre la aplicación y el servidor en procesos de importación o integración. Sin embargo, no convierte automáticamente todas las operaciones en una transacción. El programador debe distinguir entre agrupar peticiones por rendimiento y exigir atomicidad transaccional.
Procesamiento por bloques en series temporales
Determinadas consultas sobre series temporales pueden procesarse por bloques en lugar de tratar cada valor individualmente. En cargas analíticas compatibles, MongoDB informa de mejoras de rendimiento muy elevadas, especialmente en agrupaciones. Para sistemas que almacenan millones de mediciones, esta evolución puede reducir el tiempo de cálculo sin modificar por completo el modelo de datos.
Query settings y control de planes
MongoDB 8.0 amplió el control sobre el comportamiento de las consultas mediante query settings. Estas configuraciones se asocian a la forma de una consulta y pueden influir en la planificación, restringir índices o incluso rechazar determinados patrones. Sustituyen progresivamente a mecanismos más antiguos como los filtros de índices.
Esta capacidad es valiosa cuando una consulta concreta provoca consumos desproporcionados o el optimizador selecciona un plan inadecuado. También puede ser peligrosa si se aplican reglas sin documentación, porque una modificación en la aplicación podría crear una forma de consulta distinta y dejar de coincidir con la configuración prevista.
Consultas rápidas mediante etapas EXPRESS
Algunas operaciones sencillas, como ciertas búsquedas por igualdad sobre _id, pueden omitir parte de la planificación tradicional y utilizar rutas de ejecución optimizadas. Estas etapas EXPRESS reducen el trabajo necesario para consultas muy frecuentes y predecibles.
Mejoras en replicación
MongoDB 8.0 cambió el tratamiento interno de la replicación para que los secundarios escriban y apliquen lotes del oplog en paralelo. También modificó el momento en que una escritura con confirmación majority puede considerarse reconocida. Estas mejoras buscan aumentar el rendimiento, pero alteran algunas métricas y comportamientos que deben revisar los sistemas de monitorización existentes.
TCMalloc renovado
MongoDB 8.0 utiliza una versión actualizada de TCMalloc con cachés por CPU en lugar de cachés por hilo. El cambio pretende reducir la fragmentación de memoria y mejorar la resistencia en cargas intensas. También obliga a revisar antiguas recomendaciones de ajuste de memoria y de páginas grandes transparentes, porque las prácticas válidas para versiones anteriores pueden no ser adecuadas en 8.0.
Más libertad para mover y desfragmentar datos
La administración de clústeres fragmentados avanzó con varias funciones:
- Movimiento de colecciones no fragmentadas entre shards.
- Conversión de una colección fragmentada en una colección no fragmentada.
- Mejoras importantes de rendimiento en operaciones de resharding.
- Posibilidad de utilizar un servidor de configuración como config shard para almacenar también datos de aplicación.
- Continuidad de determinados flujos de cambios al mover colecciones.
Estas funciones reducen la rigidez de decisiones tomadas años atrás. Aun así, son operaciones de infraestructura delicadas y deben probarse con copias realistas, tiempos de ejecución medidos y procedimientos de recuperación.
Cifrado consultable por rangos
MongoDB 8.0 amplió Queryable Encryption para admitir comparaciones de rango sobre campos cifrados mediante operadores como menor que, menor o igual, mayor que y mayor o igual. Esto abre casos de uso que no podían resolverse solo con coincidencias de igualdad, como fechas, importes o puntuaciones protegidas.
Compactación en segundo plano
La orden autoCompact permite intentar mantener controlado el espacio libre dentro de colecciones e índices. La compactación deja de ser únicamente una actuación manual puntual y puede integrarse en una estrategia operativa más continua. Debe configurarse con prudencia porque la recuperación de espacio consume recursos y puede competir con la carga normal.
MongoDB 8.2 y 8.3: nueva etapa de versiones estables
Las series 8.2 y 8.3 son importantes no solo por sus funciones, sino porque muestran el nuevo ritmo de publicación. MongoDB 8.3 figura como la versión estable actual en la documentación oficial consultada el 16 de julio de 2026. La revisión 8.3.4 fue publicada el 11 de junio de 2026 y la documentación también muestra una futura 8.3.5 todavía marcada como próxima, por lo que no debe considerarse disponible hasta su publicación efectiva.
Mejoras acumuladas desde 8.1 y 8.2
Las versiones intermedias han seguido optimizando consultas, inserciones de series temporales, consumo de CPU y cargas en memoria. MongoDB publica porcentajes de mejora para escenarios concretos, pero deben interpretarse como indicadores, no como garantías universales.
También se han añadido nuevos acumuladores de agregación, comentarios en configuraciones de consultas, mejoras de auditoría, controles ante falta de espacio y métricas más precisas sobre la duración de operaciones.
Fusión de resultados y evolución de consultas
MongoDB 8.3 declara disponible de forma general la etapa de agregación $scoreFusion, orientada a combinar puntuaciones procedentes de diferentes fuentes de resultados. Junto con $rankFusion, refleja la evolución de MongoDB hacia escenarios donde se mezclan búsquedas, relevancia y recuperación de información.
También mejora el acceso a los índices de elementos dentro de expresiones que recorren matrices, lo que simplifica determinadas transformaciones que antes requerían construcciones más largas.
Seguridad y revisiones de mantenimiento
Las notas de MongoDB 8.3 muestran numerosas correcciones de seguridad y fiabilidad. Esto recuerda que instalar una versión mayor moderna no basta: es necesario mantenerse en revisiones corregidas dentro de la misma serie. Una instalación 8.0.0 o 8.3.0 no equivale, desde el punto de vista de seguridad, a la última revisión de su rama.
Comparación práctica entre MongoDB 4.4.10 y la actualidad
| Área | Situación alrededor de 4.4.10 | Situación en las versiones actuales |
|---|---|---|
| Series temporales | Se modelaban principalmente con colecciones convencionales y lógica propia. | Colecciones específicas, mejoras de compresión, índices y procesamiento por bloques. |
| Compatibilidad de aplicaciones | Mayor dependencia del comportamiento concreto de cada versión. | API estable para declarar una frontera de compatibilidad. |
| Fragmentación | Cambiar decisiones de distribución podía requerir migraciones complejas. | Resharding, movimiento de colecciones y posibilidad de desfragmentar colecciones. |
| Seguridad de campos | Cifrado del transporte, del almacenamiento y cifrado de campos con posibilidades más limitadas. | Queryable Encryption y consultas de igualdad o rango sobre campos cifrados compatibles. |
| Control de consultas | Índices, sugerencias y filtros de índices con menor persistencia semántica. | Query settings, estadísticas de consultas, formas de consulta y rechazo controlado. |
| Escrituras masivas | Operaciones masivas orientadas a una colección. | Comando masivo capaz de trabajar con varias colecciones en una solicitud. |
| Replicación | Arquitectura consolidada, pero con menos paralelismo interno en algunas fases. | Mejoras en escritura y aplicación del oplog, rendimiento de mayoría y nuevas métricas. |
| Memoria | TCMalloc y recomendaciones operativas de la etapa anterior. | Cachés por CPU, menor fragmentación y nuevas métricas de memoria. |
| Modelo de versiones | Predominio de versiones mayores estables para despliegues autogestionados. | Versiones menores estables disponibles desde 8.2 para determinados usos. |
La comparación muestra que MongoDB no ha abandonado su base documental. Los documentos BSON, las colecciones, los índices, la agregación, la replicación y la fragmentación siguen siendo conceptos centrales. Lo que ha cambiado es la profundidad con la que el servidor resuelve problemas que antes recaían sobre la aplicación o sobre procedimientos operativos externos.
Comparativa técnica entre MongoDB 4.4.10 y MongoDB 8.3
Además de las funciones visibles para el desarrollador, entre MongoDB 4.4.10 y MongoDB 8.3 han cambiado las plataformas admitidas, la gestión interna de memoria, el tratamiento de operaciones que necesitan ordenar grandes volúmenes y algunos detalles operativos de la replicación. Otros límites esenciales, en cambio, se mantienen. La siguiente comparación se refiere principalmente a despliegues autogestionados y debe contrastarse siempre con la edición, la arquitectura del procesador y el repositorio oficial que se vaya a utilizar.
Sistemas operativos y plataformas compatibles
| Plataforma | MongoDB 4.4 | MongoDB 8.3 | Observación práctica |
|---|---|---|---|
| Ubuntu | Ubuntu 16.04, 18.04 y 20.04 LTS de 64 bits. | Ubuntu 20.04, 22.04 y 24.04 LTS de 64 bits en los paquetes oficiales consultados. | Una migración desde 4.4 suele exigir actualizar también el sistema operativo. Ubuntu 16.04 y 18.04 no son destinos adecuados para una instalación moderna de MongoDB. |
| Debian | Debian 9 y Debian 10 de 64 bits. | Debian 12 de 64 bits figura como plataforma para MongoDB 8.3 Enterprise. La disponibilidad exacta de Community debe verificarse en el selector de instalación vigente. | No debe suponerse que un repositorio antiguo de Debian puede reutilizarse para 8.3. |
| Red Hat y compatibles | RHEL, CentOS y Oracle Linux 6, 7 y 8; Rocky Linux y AlmaLinux 8 en los casos admitidos. | RHEL, CentOS Stream, Oracle Linux, Rocky Linux y AlmaLinux 8 y 9. | Oracle Linux debe utilizar el kernel compatible con Red Hat. Las ramas antiguas 6 y 7 dejan de ser una base razonable para la versión actual. |
| SUSE Linux Enterprise Server | SLES 12 y SLES 15 de 64 bits. | SLES 15 de 64 bits. | El salto elimina SLES 12 como plataforma de destino actual. |
| Amazon Linux | Amazon Linux 2 era la plataforma habitual de la etapa 4.4. | Amazon Linux 2023 de 64 bits; ARM64 está disponible en determinadas plataformas. | La actualización del servidor puede implicar crear una instancia nueva y migrar los datos en vez de actualizar el sistema operativo sobre la misma máquina. |
| Windows | Windows Server y Windows de 64 bits compatibles con la rama 4.4. | Windows Server 2022 y Windows 11 de 64 bits en MongoDB 8.3 Enterprise. | La matriz exacta depende de la edición. Conviene comprobar también las herramientas de copia y los agentes de monitorización. |
| Arquitectura | x86_64 como referencia principal, con ARM64 y s390x en plataformas seleccionadas. | x86_64 y ARM64 en un conjunto más amplio de plataformas seleccionadas. | Desde MongoDB 5.0, los procesadores x86_64 deben disponer del conjunto de instrucciones AVX. |
Estas listas no deben interpretarse como una promesa universal para cualquier combinación de edición, procesador y distribución. MongoDB Community y MongoDB Enterprise no siempre publican exactamente los mismos paquetes. Antes de diseñar una migración hay que comprobar la página de instalación de la versión concreta y confirmar que el repositorio contiene paquetes para la distribución elegida.
Cuánta memoria ocupa un servidor standalone
No existe una cifra fija y fiable que permita afirmar que un proceso mongod standalone ocupa una cantidad concreta de memoria. El consumo cambia según la RAM disponible, el tamaño del conjunto de trabajo, los índices, el número de conexiones, las operaciones activas, las colecciones abiertas, la compresión y el uso que haga el sistema operativo de la caché de archivos. Por este motivo, una tabla con valores genéricos como «300 MB» o «4 GB» sería engañosa.
Con WiredTiger, tanto MongoDB 4.4 como MongoDB 8.3 utilizan una caché interna y, además, se benefician de la caché del sistema de archivos. En la documentación actual, el tamaño predeterminado de la caché interna de WiredTiger es el mayor de estos dos valores:
- El 50 % de la memoria RAM disponible menos 1 GB.
- 0,256 GB.
Por ejemplo, en un servidor con 4 GB de RAM, la caché interna predeterminada es aproximadamente de 1,5 GB. Esto no significa que el proceso vaya a mostrar exactamente 1,5 GB de memoria residente: existen otras estructuras del servidor, conexiones, pilas de hilos, planes de ejecución y memoria compartida con la caché del sistema operativo.
| Aspecto de memoria | MongoDB 4.4.10 | MongoDB 8.3 |
|---|---|---|
| Caché WiredTiger | Regla aproximada del 50 % de la RAM menos 1 GB, con mínimo interno. | Se mantiene la misma regla general; la documentación actual fija el mínimo en 0,256 GB. |
| Caché del sistema operativo | MongoDB aprovecha la memoria libre para almacenar bloques de archivos. | Se mantiene. La memoria libre no debe considerarse necesariamente memoria desperdiciada. |
| Asignador de memoria | TCMalloc de la generación anterior. | TCMalloc actualizado, con cambios orientados a reducir fragmentación y mejorar cargas intensivas. |
| Contenedores | Requería ajustar la caché cuando el proceso veía más memoria que la asignada realmente al contenedor. | Sigue siendo necesario revisar el límite efectivo y configurar la caché cuando el entorno no se detecta correctamente. |
| Varios procesos en una máquina | Era necesario reducir la caché de cada instancia. | La recomendación continúa vigente; el valor predeterminado presupone un único proceso mongod por servidor. |
Para dimensionar un standalone pequeño hay que medir el conjunto de trabajo real. Una base de pocos cientos de megabytes puede funcionar en una máquina modesta, pero producción necesita margen para el sistema operativo, copias, picos de consultas, ordenaciones y crecimiento. La mejor referencia no es el consumo inmediatamente después del arranque, sino el comportamiento después de varias horas o días bajo una carga representativa.
Límites de documentos, consultas y mensajes
| Límite | MongoDB 4.4.10 | MongoDB 8.3 | Interpretación |
|---|---|---|---|
| Tamaño máximo de un documento BSON | 16 MiB. | 16 MiB. | El límite esencial no ha cambiado. Para archivos grandes debe utilizarse GridFS o almacenamiento externo. |
| Tamaño máximo de un mensaje interno | Aproximadamente 48 MB para mensajes que pueden contener varios documentos. | Aproximadamente 48 MB. | No equivale al tamaño máximo de un documento individual. |
| Número máximo de niveles BSON anidados | 100 niveles. | 100 niveles. | Un modelo excesivamente profundo puede alcanzar el límite aunque el documento ocupe menos de 16 MiB. |
| Etapas de una canalización de agregación | Hasta 1000 etapas. | Hasta 1000 etapas. | El límite no justifica construir canalizaciones inmanejables; conviene dividir procesos complejos. |
| Tamaño de la consulta | No existe un único límite denominado «tamaño máximo de consulta». El comando se transmite como BSON y queda condicionado por los límites del protocolo, el documento de comando, las etapas y las expresiones. | La idea se mantiene. | Debe distinguirse entre tamaño del documento de consulta, tamaño de los resultados, tamaño de cada documento y memoria de ejecución. |
Cuando se pregunta por el tamaño máximo de una consulta, normalmente se están mezclando varios conceptos. Una consulta puede ser pequeña y devolver millones de documentos porque el resultado se entrega mediante lotes y cursores. También puede devolver un solo documento que no puede superar 16 MiB. Por otro lado, una canalización puede generar resultados intermedios voluminosos y necesitar memoria o almacenamiento temporal aunque el comando enviado por el cliente sea muy pequeño.
Límites de memoria para ordenar y agrupar
MongoDB utiliza memoria para etapas bloqueantes como $sort, determinadas agrupaciones y otras operaciones que deben reunir información antes de producir resultados. El umbral de referencia continúa siendo 100 MB por etapa bloqueante, pero el comportamiento al superar ese umbral ha cambiado.
| Comportamiento | MongoDB 4.4.10 | MongoDB 8.3 |
|---|---|---|
| Ordenación que supera 100 MB | Normalmente debía autorizarse explícitamente el uso de disco mediante allowDiskUse; de lo contrario, la operación podía fallar. |
Desde MongoDB 6.0, el parámetro allowDiskUseByDefault controla el comportamiento general. Con el valor predeterminado correspondiente, las operaciones que superan 100 MB pueden escribir archivos temporales en disco. |
| Control por operación | allowDiskUse: true habilitaba el desbordamiento a disco en operaciones compatibles. |
Puede utilizarse allowDiskUse: false o true para anular el comportamiento predeterminado en operaciones compatibles. |
| Uso de índices para ordenar | Un índice adecuado podía evitar una ordenación bloqueante. | Sigue siendo la solución preferida. Poder desbordar a disco no convierte una consulta mal indexada en una consulta eficiente. |
| Archivos temporales | Podían generarse cuando se permitía usar disco. | Se siguen generando en el directorio temporal configurado; deben existir espacio libre, permisos y monitorización. |
El límite de 100 MB no significa que toda la consulta tenga exactamente 100 MB de memoria total. Varias etapas, operaciones concurrentes y conexiones distintas pueden consumir memoria simultáneamente. En producción hay que vigilar la concurrencia: cien consultas que ordenan al mismo tiempo pueden ser mucho más peligrosas que una sola consulta grande.
Gestión de miembros de un replica set
| Parámetro o tipo de miembro | MongoDB 4.4.10 | MongoDB 8.3 |
|---|---|---|
| Máximo de miembros configurados | 50. | 50. |
| Máximo de miembros con voto | 7. | 7. |
| Primary | Como máximo uno. | Como máximo uno. |
| Secondary elegible | Puede convertirse en primary si tiene voto, prioridad superior a cero y está suficientemente actualizado. | Se mantiene el mismo principio. |
| Miembro con prioridad 0 | No puede ser primary ni iniciar una elección. | Se mantiene; resulta útil para copias, lecturas concretas o ubicaciones que no deben asumir el rol principal. |
| Miembro sin voto | Debe tener prioridad 0. | Se mantiene. Permite superar siete miembros totales sin aumentar el electorado. |
| Miembro oculto | Disponible mediante hidden: true y normalmente priority: 0. |
Se mantiene. |
| Miembro retrasado | Disponible para conservar una vista retardada de los datos. | Se mantiene; exige evaluar cuidadosamente el tamaño del oplog. |
| Árbitro | Vota, pero no almacena datos. | Sigue disponible, aunque se recomienda limitarlo a situaciones justificadas y no utilizar más de uno. |
La posibilidad de configurar hasta 50 miembros no significa que sea recomendable hacerlo. La mayoría de pequeñas instalaciones funciona mejor con tres miembros que almacenan datos. Las topologías con árbitro reducen costes, pero presentan compromisos importantes en durabilidad, mantenimiento y confirmación de escrituras.
Cómo funciona el proceso de elección
MongoDB 4.4.10 y MongoDB 8.3 utilizan el protocolo de replicación PV1. Los principios básicos de elección se mantienen:
- Los miembros intercambian latidos o heartbeats para conocer su estado.
- Cuando el primary deja de estar disponible, los secundarios elegibles esperan el tiempo de elección configurado.
- Un candidato solicita votos y debe obtener la mayoría de los miembros con voto.
- Los votantes comparan la frescura del candidato y otra información del término de elección.
- El ganador pasa a ser primary y comienza a aceptar escrituras cuando completa la transición.
El parámetro electionTimeoutMillis continúa siendo importante. Un valor demasiado bajo puede provocar elecciones innecesarias ante pausas breves de red; un valor demasiado alto prolonga el tiempo sin primary. La elección también puede producirse por una reconfiguración, una operación de mantenimiento, un rs.stepDown() o cambios de prioridad.
| Aspecto | MongoDB 4.4.10 | MongoDB 8.3 |
|---|---|---|
| Protocolo electoral | PV1. | PV1, con mejoras internas acumuladas de replicación y aplicación del oplog. |
| Mayoría necesaria | Mayoría de los votos configurados. | Mayoría de los votos configurados. |
| Prioridad | Influye en qué miembro se prefiere como primary. | Se mantiene. |
| Miembro sin voto | No participa en elecciones. | Se mantiene. |
| Catch-up | El miembro elegido puede intentar alcanzar una posición más reciente antes de aceptar escrituras. | Se mantiene con mejoras internas de replicación. |
| Impacto de la red | La latencia y las particiones podían provocar elecciones o pérdida temporal de mayoría. | El principio no cambia: una versión nueva no corrige una topología geográfica mal diseñada. |
Configuración básica de un replica set
La estructura básica de configuración ha cambiado poco. Cada proceso debe arrancar con el mismo nombre de replica set, una dirección accesible para los demás miembros y autenticación correctamente configurada. Un ejemplo mínimo de mongod.conf para cada servidor sería:
storage:
dbPath: /var/lib/mongodb
net:
bindIp: 127.0.0.1,10.0.0.11
port: 27017
replication:
replSetName: rs0
security:
authorization: enabled
keyFile: /etc/mongodb-keyfile
La dirección privada debe cambiarse en cada nodo. El archivo de clave debe contener el mismo secreto en todos los miembros, estar protegido con permisos restrictivos y pertenecer al usuario que ejecuta MongoDB.
Después de iniciar los tres procesos, la configuración puede inicializarse desde uno de ellos:
rs.initiate({
_id: "rs0",
members: [
{ _id: 0, host: "db1.example.internal:27017", priority: 2 },
{ _id: 1, host: "db2.example.internal:27017", priority: 1 },
{ _id: 2, host: "db3.example.internal:27017", priority: 1 }
]
})
La prioridad superior del primer miembro expresa una preferencia, no una garantía absoluta. Si no está disponible o no puede obtener mayoría, otro miembro elegible puede asumir el rol primary. Para revisar la situación deben utilizarse rs.status(), rs.conf() y las métricas del servidor.
Una configuración real debe añadir TLS, reglas de cortafuegos, resolución de nombres estable, sincronización horaria, copias, monitorización y una política de mantenimiento. No deben utilizarse direcciones que solo resuelvan desde una máquina concreta ni publicar el puerto 27017 directamente en Internet.
Nodo o motor completamente en memoria
MongoDB dispone de un motor de almacenamiento in-memory para despliegues autogestionados de MongoDB Enterprise. No debe confundirse con mantener un conjunto de trabajo caliente en la caché de WiredTiger. Con el motor in-memory, todos los datos, índices y oplog del miembro deben caber en el límite configurado.
| Aspecto | Motor WiredTiger | Motor in-memory |
|---|---|---|
| Persistencia | Los datos se almacenan en disco y se utiliza journal. | Los datos no se conservan tras apagar o reiniciar el proceso. |
| Tamaño predeterminado | Caché interna basada en el 50 % de la RAM menos 1 GB, con mínimo. | 50 % de la RAM física menos 1 GB. |
| Desbordamiento | Los datos permanecen en disco y la caché expulsa páginas. | Si una escritura supera la capacidad configurada, devuelve un error de caché llena. |
| Edición | Community y Enterprise. | Enterprise. |
| Uso habitual | Producción general. | Cargas especializadas donde se busca latencia predecible y existe otra estrategia de persistencia. |
Un miembro en memoria puede formar parte de un replica set, pero la topología debe diseñarse con especial cuidado. Es posible combinar miembros in-memory con un miembro WiredTiger oculto y de prioridad 0 que conserve los datos en disco. La documentación advierte también sobre writeConcernMajorityJournalDefault, las transacciones y la imposibilidad de recuperar los datos de un nodo en memoria después de un reinicio.
Para una pequeña empresa, este motor rara vez es la primera opción. Un servidor WiredTiger con RAM suficiente, índices correctos y almacenamiento rápido suele ser más sencillo, más económico y más seguro. La versión 8.3 no convierte el motor en memoria en un sustituto general del almacenamiento persistente.
Resumen de los parámetros que se mantienen y los que cambian
| Parámetro | MongoDB 4.4.10 | MongoDB 8.3 | ¿Ha cambiado sustancialmente? |
|---|---|---|---|
| Documento BSON máximo | 16 MiB. | 16 MiB. | No. |
| Miembros máximos del replica set | 50. | 50. | No. |
| Miembros con voto | 7. | 7. | No. |
| Protocolo de elección | PV1. | PV1. | No en su fundamento; sí en optimizaciones internas. |
| Memoria de ordenación antes de usar disco | 100 MB. | 100 MB. | El umbral continúa, pero desde 6.0 cambia la gestión predeterminada del desbordamiento. |
| Caché predeterminada de WiredTiger | Aproximadamente el 50 % de la RAM menos 1 GB. | El mayor valor entre el 50 % de la RAM menos 1 GB y 0,256 GB. | La filosofía se mantiene. |
| Plataformas Linux | Distribuciones antiguas como Ubuntu 16.04, Debian 9, RHEL 6 y SLES 12. | Plataformas modernas como Ubuntu 24.04, Debian 12, RHEL 9, SLES 15 y Amazon Linux 2023. | Sí; es uno de los mayores condicionantes de la migración. |
| Replica set básico | Configuración mediante replSetName y rs.initiate(). |
Mismo modelo básico. | No, aunque la replicación interna ha ganado rendimiento y métricas. |
Esta tabla explica una idea importante: MongoDB ha evolucionado mucho sin modificar algunos límites estructurales. Una migración no debe justificarse diciendo que ahora admite documentos más grandes o más votantes, porque esos valores se mantienen. Las ventajas reales están en el rendimiento, la seguridad, el control de consultas, la redistribución de datos, las series temporales y el soporte de sistemas operativos modernos.
Cómo actualizar desde MongoDB 4.4.10
No se debe saltar directamente desde MongoDB 4.4.10 a MongoDB 8.3. El proceso normal exige recorrer sucesivamente las versiones principales admitidas. De forma conceptual, la ruta es 4.4, 5.0, 6.0, 7.0, 8.0 y, después, las versiones menores estables compatibles como 8.2 y 8.3.
Antes de actualizar, conviene aplicar la última revisión disponible de la rama de origen y leer las instrucciones oficiales de cada salto. Cada versión puede exigir una versión mínima anterior, un valor concreto de featureCompatibilityVersion y la eliminación o modificación de elementos incompatibles.
1. Inventariar el entorno
- Versión exacta de
mongodymongos. - Tipo de despliegue: servidor independiente, conjunto de réplicas o clúster fragmentado.
- Sistema operativo, arquitectura y versión de las bibliotecas.
- Controladores utilizados por cada aplicación.
- Herramientas de copia, monitorización, automatización y administración.
- Funciones obsoletas, parámetros personalizados y comandos internos.
2. Revisar la compatibilidad de controladores
El servidor puede arrancar correctamente y, aun así, la aplicación fallar por utilizar un controlador antiguo. Es necesario comprobar la matriz de compatibilidad de cada lenguaje, actualizar dependencias y ejecutar pruebas de integración. En aplicaciones antiguas también puede ser necesario renovar el entorno de ejecución de Node.js, Java, Python, PHP, .NET u otro lenguaje.
3. Crear copias verificadas
Una copia de seguridad no es suficiente si nunca se ha restaurado. Antes de cada salto debe existir una copia coherente, protegida y probada. En sistemas grandes también hay que estimar el tiempo real de restauración, porque disponer de los datos no garantiza que el servicio pueda recuperarse dentro de la ventana aceptable.
4. Probar con datos representativos
La prueba debe reproducir el volumen, los índices, las consultas y los patrones de escritura. Una base pequeña de demostración puede ocultar regresiones que solo aparecen con millones de documentos, distribuciones desiguales o índices que ya no caben en memoria.
5. Actualizar una versión cada vez
Cada transición debe completarse y estabilizarse antes de iniciar la siguiente. En conjuntos de réplicas y clústeres fragmentados hay un orden específico para actualizar componentes. También debe respetarse el momento adecuado para cambiar featureCompatibilityVersion, ya que activarlo puede habilitar formatos o funciones que dificulten el retorno.
6. Comparar rendimiento y planes
Las mejoras del motor no garantizan que todas las consultas sean más rápidas. Después de cada salto conviene comparar:
- Latencia media y percentiles altos.
- Documentos e índices examinados.
- Planes ganadores y replanteamientos.
- Consumo de memoria, CPU y disco.
- Retraso de replicación.
- Duración de copias y tareas de mantenimiento.
7. Revisar seguridad y configuración
Las configuraciones heredadas pueden contener parámetros eliminados, mecanismos de autenticación antiguos o excepciones que ya no son necesarias. La migración es una oportunidad para revisar TLS, usuarios, roles, auditoría, exposición de red y políticas de copia. Cuando la instalación se ejecuta en Linux, puede ser conveniente integrar esta revisión dentro de un servicio más amplio de programación y administración de servidores Linux.
Qué significa este cambio para una pequeña empresa
Para una pequeña empresa, las nuevas funciones no justifican por sí solas una migración. La pregunta útil es qué problema operativo resuelve cada cambio.
Cuándo puede aportar valor actualizar
- La versión instalada ha quedado fuera de mantenimiento y ya no recibe correcciones.
- Los controladores actuales de la aplicación dejan de ser compatibles con la rama antigua.
- Las consultas temporales consumen demasiado tiempo y podrían beneficiarse de colecciones especializadas.
- La empresa necesita cifrar campos sensibles y seguir consultándolos.
- El clúster fragmentado necesita redistribuir datos o corregir una clave de fragmentación problemática.
- Se requiere mejor observabilidad para localizar consultas costosas.
- Los procesos de importación necesitan escrituras masivas más eficientes.
Cuándo la actualización puede convertirse en un proyecto peligroso
- No existe una copia restaurable.
- Nadie conoce las dependencias de la aplicación.
- El servidor se actualiza directamente en producción.
- Se pretenden saltar varias versiones mayores en una sola intervención.
- No se miden consultas ni consumo antes del cambio.
- Se activan funciones nuevas sin comprender su impacto en una posible reversión.
En aplicaciones pequeñas es frecuente que la mayor dificultad no esté en MongoDB, sino en el código que lo rodea: controladores antiguos, esquemas implícitos, consultas construidas dinámicamente, tareas programadas y exportaciones que nadie ha documentado. Una migración ordenada debe tratar el sistema completo.
Cuando MongoDB forma parte de un flujo de importación, normalización o intercambio con otros sistemas, también es necesario revisar la transformación e integración de datos. El cambio de base de datos puede revelar formatos inconsistentes, campos duplicados, fechas mal normalizadas o supuestos ocultos en procesos antiguos.
Conclusión
Desde MongoDB 4.4.10 hasta MongoDB 8.3, el producto ha pasado de ser una base de datos documental madura a una plataforma con capacidades mucho más amplias para series temporales, seguridad, observabilidad, administración de consultas y redistribución de datos.
Los cambios más significativos no son únicamente mejoras de velocidad. MongoDB 5.0 introdujo colecciones temporales, API estable y resharding; MongoDB 6.0 reforzó los eventos de cambio y el cifrado consultable; MongoDB 7.0 añadió índices wildcard compuestos y mejor tratamiento de eventos grandes; MongoDB 8.0 renovó el rendimiento, la replicación, las escrituras masivas y la administración de clústeres; y las series 8.2 y 8.3 inauguraron una nueva etapa de versiones menores estables.
Para una instalación que todavía utiliza 4.4.10, la conclusión no debe ser actualizar inmediatamente al último número disponible, sino planificar una migración escalonada. La versión de destino debe elegirse según compatibilidad, soporte, necesidades funcionales y capacidad real de prueba. Una actualización bien preparada puede mejorar seguridad y rendimiento; una actualización improvisada puede convertir una base estable en una interrupción difícil de revertir.
Preguntas frecuentes
¿Cuál es la versión estable actual de MongoDB?
A fecha de 16 de julio de 2026, la documentación oficial de MongoDB identifica la serie 8.3 como la versión estable actual. MongoDB 8.0 sigue siendo una versión mayor de referencia, pero 8.2 y 8.3 forman parte del nuevo esquema de versiones menores estables.
¿Se puede actualizar directamente desde MongoDB 4.4.10 a 8.3?
No. La actualización debe realizarse siguiendo las rutas admitidas entre versiones sucesivas. En términos generales, hay que pasar por 5.0, 6.0, 7.0 y 8.0 antes de avanzar a las versiones menores estables posteriores.
¿MongoDB 8.3 sustituye completamente a MongoDB 8.0?
No en todos los sentidos. MongoDB 8.3 es la serie estable más reciente, mientras que 8.0 es una versión mayor con un ciclo y una adopción propios. La elección depende del soporte requerido, las herramientas utilizadas y las funciones necesarias.
¿Qué cambio ha sido más importante desde MongoDB 4.4?
No existe uno solo. Para aplicaciones operativas destacan la API estable, las mejoras del motor de consultas y las escrituras masivas. Para infraestructuras grandes son muy relevantes el resharding, el movimiento de colecciones y la evolución de la replicación. Para datos sensibles, Queryable Encryption representa uno de los avances principales.
¿Actualizar MongoDB mejora automáticamente el rendimiento?
No. Las versiones recientes incorporan mejoras importantes, pero el resultado depende del modelo de datos, los índices, la memoria, las consultas y la carga. Siempre deben compararse métricas y planes de ejecución antes y después de la migración.
¿Es suficiente actualizar solo el servidor MongoDB?
No necesariamente. También deben revisarse los controladores de la aplicación, el sistema operativo, las herramientas de copia, los agentes de monitorización, los procesos de importación y cualquier script que utilice comandos o métricas antiguas.
¿MongoDB 4.4.10 sigue siendo recomendable para producción?
No es una opción recomendable para una instalación que deba mantenerse a largo plazo. Es una rama antigua y la documentación actual la clasifica entre las versiones fuera de ciclo. Mantenerla aumenta el riesgo de incompatibilidad, falta de correcciones y dependencia de componentes obsoletos.
¿Qué versión debería elegir una pequeña empresa?
Debe elegir una versión estable compatible con su aplicación, sus controladores y su sistema operativo. La versión más reciente puede ser adecuada, pero una rama mayor ampliamente soportada puede resultar más prudente cuando existen herramientas externas que todavía no han validado las series menores nuevas.
