Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Notas de versión

Conozca las novedades en:

  • Versión 7.1

  • Versión 7.0

  • Versión 6.21

  • Versión 6.20

  • Versión 6.19

  • Versión 6.18

  • Versión 6.17

  • Versión 6.16

  • Versión 6.15

  • Versión 6.14

  • Versión 6.13

  • Versión 6.12

  • Versión 6.11

  • Versión 6.10

  • Versión 6.9

  • Versión 6.8

  • Versión 6.7

  • Versión 6.6

  • Versión 6.5

  • Versión 6.4

  • Versión 6.3

  • Versión 6.2

  • Versión 6.1

  • Versión 6.0

La versión7.1 del driver de Node.js incluye las siguientes funcionalidades:

  • Añade lógica para MONGODB-AWS autenticación al controlador, por lo que el paquete aws4 ya no es obligatorio para utilizar la autenticación MONGODB-AWS. Para aprender más sobre la autenticación MONGODB-AWS, consulte la Guía delmecanismo de autenticación de AWS IAM.

  • Mejora la compatibilidad en tiempo de ejecución al eliminar todos los usos de util.promisify.

  • Utiliza la importación explícita de node:process en lugar de global.process para que los empaquetadores y los entornos de ejecución alternativos puedan proveer y optimizar la implementación de process de manera más coherente.

  • Reemplaza varias API específicas de nodo por equivalentes basados en estándares para reducir el número de parches requeridos para ejecutar el driver fuera de Node.js:

    • process.arch es ahora os.arch()

    • process.platform es ahora os.platform()

    • os.endianness() es ahora BSON.NumberUtils

    • process.hrtime() es ahora performance.now()

    • process.nextTick() es ahora queueMicrotask()

  • Mejora el comportamiento de reintento:

    • Evita la rotación innecesaria del pool de conexiones cuando la limitación de la tasa de conexiones del lado del servidor está habilitada, al no vaciar el pool cuando las conexiones fallan.

    • Agrega un retroceso exponencial al comportamiento de reintento withTransaction().

    • Desprioriza los servidores sobrecargados o caídos durante los reintentos de selección de servidores.

  • Mejoras en la autenticación OIDC:

    • Expande la lista OIDC ALLOWED_HOSTS por defecto para incluir *.mongo.com.

    • Corrige la reautenticación de OIDC cuando promoteValues: false está habilitado.

  • Corrige el modo en que se manejan las preferencias de lectura en las agregaciones que usan $merge y $out.

  • Se descontinúa RenameCollectionOptions.new_collection para su futura eliminación

Para obtener más información sobre esta versión, consulte las notas de versión v7.1.0 en GitHub.

Advertencia

Cambios disruptivos en la versión v7.0

Esta versión del driver introduce cambios disruptivos. Para obtener una lista de estos cambios, consulta la sección Cambios disruptivos de la versión 7.0 en la guía de actualización.

La versión7.0 del driver de Node.js incluye las siguientes funcionalidades:

  • Actualiza la versión mínima de Node.js a v20.19.0.

  • Actualiza las versiones bson y mongodb-connection-string-url a 7.0.0. Pour en savoir plus sur la fonctionnalité BSON mise à jour pour la v7.0.0, ver los cambios destacados en las notas de versión de BSON v7.

  • Actualiza la matriz de dependencias entre pares para los siguientes paquetes a los siguientes rangos permitidos:

    • @aws-sdk/credential-providers: ^3.806.0

    • @mongodb-js/zstd: ^2.0.0

    • gcp-metadata: ^7.0.1

    • socks: ^2.8.6

    Para ver la tabla completa de compatibilidad de dependencias, consulta la tabla Compatibilidad de componentes en la página Tablas de compatibilidad de drivers de Nodo.js.

  • Mejora la consistencia MongoClient.connect() en todos los entornos al permitir que la función connect() ejecute un protocolo de enlace independientemente de si las credenciales están definidas.

  • Actualiza MongoClient.close() para intentar limpiar las sesiones solo si la topología admite sesiones.

  • Marca el parámetro de opciones para el método ClientEncryption.rewrapManyDataKey() como opcional para resolver un desajuste de TypeScript.

  • Envuelve socket.write llamadas en un bloque try/catch para asegurar que los errores resulten correctamente en un reintento.

  • Se incluyen cambios importantes para la autenticación de AWS. Para obtener más información sobre estos cambios, consulte la 7.0 sección "Cambios importantes de la versión " en la guía de actualización.

  • Añade las siguientes mejoras en el manejo de errores:

    • Cuando descartas una colección, la colección devuelve false en lugar de arrojar errores namespace not found.

    • La agregación con un writeConcern y explain genera un MongoServerError en lugar de un error del lado del cliente.

    • Todos los errores arrojados durante el cifrado son subclases de MongoError.

Para obtener más información sobre esta versión, consulte las notas de versión v7.0.0 en GitHub.

La versión6.21 del driver de Node.js incluye las siguientes funcionalidades:

  • Desaprueba las siguientes propiedades e interfaz, que se eliminarán en la versión7.0:

    • MongoCredentials.authMechanismProperties.AWS_SESSION_TOKEN

    • CommandOptions.noResponse

    • ConnectionOptions.cancellationToken

    • CursorStreamOptions

Para obtener más información sobre esta versión, consulte las notas de versión v6.21.0 en GitHub.

La versión6.20 del driver de Node.js incluye las siguientes funcionalidades:

  • Ya no genera un error cuando se proporciona la opción hint en los comandos update no reconocidos. Cuando se conecta a MongoDB Server 4.4 o posterior, el driver también admite la opción hint para los comandos delete y findAndModify no reconocidos.

  • Permite acceder al objeto padre Db desde un Collection y al objeto padre MongoClient desde un Db.

  • Deja obsoleta la clase ServerCapabilities.

  • Desaprueba la propiedad ReadPreference.minWireVersion.

  • Deja obsoletas las siguientes MongoClient opciones:

    • driverInfo

    • additionalDriverInfo

    • metadata

    • extendedMetadata

  • Inhabilita la opción CommandOperationOptions.retryWrites. El controlador de Node.js soporta la opción retryWrites solo a nivel de MongoClient y ya ignoraba la opción cuando se configuraba a nivel de operación. Sin embargo, esta opción se eliminará en una futura versión principal y podría generar errores de tipo o de construcción en tu código.

  • Actualiza el resumeToken cuando se utiliza el método tryNext() para recorrer los eventos del flujo de cambio. Las versiones anteriores del controlador no actualizaban el resumeToken, lo que resultaba en un comportamiento inconsistente durante la iteración del flujo de cambios.

  • Permite que los flujos de cambio se reanuden después de que el controlador encuentre un MongoServerSelectionError.

  • Ignora los metadatos duplicados al llamar a MongoClient.appendMetadata().

Para obtener más información sobre esta versión, consulte las notas de versión v6.20.0 en GitHub.

La versión6.19 del driver de Node.js incluye las siguientes funcionalidades:

  • Agrega soporte experimental para prefijo, sufijo y consultas de subcadena en la búsqueda de texto con Queryable Encryption. Debe actualizar su paquete mongodb-client-encryption a la v6.5.0 o posterior para utilizar esta funcionalidad.

    Importante

    La búsqueda de subcadenas, prefijos y sufijos está en vista previa y solo debe usarse para cargas de trabajo experimentales.

  • Obsoleto las siguientes opciones para las operaciones de findOne():

    • limit

    • noCursorResponse

    • batchSize

  • Asegura que findOne() solo pueda recibir un único lote de documentos del servidor para evitar comandos killCursor innecesarios.

  • Añade soporte para especificar un secureContext a tlsOptions:<provider> en las opciones autoEncryption sobre el MongoClient o como una opción en el objeto ``ClientEncryption``. Esto te permite pasar tlsCAFile y tlsCertificateKeyFile como opciones en memoria tanto a MongoClientOptions.autoEncryption.tlsOptions como a ClientEncryption.

  • Cuando se habilita la autenticación, MongoClient ahora verifica una conexión fuera del pool de conexiones para forzar el apretón de manos inicial y la vuelve a verificar al conectarse. Esto previene comandos innecesarios de ping al conectar.

Para obtener más información sobre esta versión, consulte las notas de versión v6.19.0 en GitHub.

La versión6.18 del driver de Node.js incluye las siguientes funcionalidades:

  • Obsoleta los siguientes nodos y tipos:

    • Transaction.options()

    • Transaction.recoveryToken()

    • Transaction.isPinned()

    • Transaction.isStarting()

    • Transaction.isActive()

    • Transaction.isCommitted()

    • ClientMetadata

    • ClientMetadataOptions

    • CancellationToken

    • CommandOperationOptions.noResponse

    Estos miembros y tipos se eliminarán en una próxima versión principal del controlador.

  • Agrega un método appendMetadata() que se puede usar para añadir metadatos de apretón de manos después de construir el objeto MongoClient. El siguiente ejemplo muestra cómo utilizar este método para agregar el nombre de la librería, la versión y la plataforma a un objeto MongoClient:

    import { MongoClient } from 'mongodb';
    const client = new MongoClient(process.env.MONGODB_URI);
    client.appendMetadata({ name: 'my library', version: '1.0', platform: 'NodeJS' });
  • Agrega una propiedad wallTime a todas las interfaces de eventos ChangeStream excepto a ChangeStreamRefineCollectionShardKeyEvent y ChangeStreamReshardCollectionDocument. Esta propiedad contiene la fecha y la hora del servidor de la operación de la base de datos.

  • Agrega una propiedad databaseName a los eventos CommandSucceededEvent y CommandFailedEvent. Esta propiedad contiene el nombre de la base de datos contra la cual la aplicación ejecutó el comando.

  • Cierra las conexiones inactivas durante los periodos de inactividad, incluso cuando la configuración minPoolSize está configurada en 0. Esto soluciona un error donde ConnectionPool no eliminaba conexiones inactivas o caducadas a menos que minPoolSize fuera mayor que 0.

  • El controlador asigna sesiones de forma perezosa cuando se itera un cursor. En versiones anteriores, el controlador asignaba sesiones siempre que se creaba un cursor, independientemente de si la aplicación recorría el cursor.

Para obtener más información sobre esta versión, consulte las notas de versión v6.18.0 en GitHub.

La versión6.17 del driver de Node.js incluye las siguientes funcionalidades:

  • Elimina el soporte para MongoDB Server 4.0.

  • Actualiza el paquete bson a la versión v6.10.4. Para obtener más información sobre esta versión, consulta las Notas de la versión v6.10.4 del paquete bson en GitHub.

  • Agrega la opción keepAliveInitialDelay al construir un MongoClient. Esta opción es por defecto 120000 milisegundos.

  • Vuelve a intentar la autenticación OIDC cuando la autenticación inicial falla debido a un error de token expirado.

  • Agrega la opción sort para las operaciones updateOne() y replaceOne(). Esta opción requiere MongoDB Server 8.0 o posteriores.

  • Indica al método MongoClient.close() que cierre las conexiones abiertas en uso.

  • Añade una opción de cifrado keyTimeoutMS para configurar el tiempo de expiración del caché de la DEK. Esta opción se establece por defecto en 6000 milisegundos y requiere mongodb-client-encryption versión 6.4 o posterior.

  • Instruye las operaciones de actualización para generar un error si el ignoreUndefined se establece en true y todas las actualizaciones no están definidas.

  • Trata los errores de socket como errores de red.

Para obtener más información sobre esta versión, consulte las notas de versión v6.17.0 en GitHub.

La versión6.16 del driver de Node.js incluye las siguientes funcionalidades:

  • El método Collection.distinct() ahora admite un parámetro opcional hint que puede usar para especificar el índice que se usará para el comando. Esta funcionalidad requiere MongoDB Server 7.1 o superior.

  • Corrige un error relacionado con el procesamiento de múltiples mensajes dentro de un mismo fragmento de datos de red, que podría ralentizar los tiempos de procesamiento.

  • Corrige un error donde FindCursor.rewind() generaba errores en ciertos casos.

  • Se descontinúa el soporte para MongoDB Server 4.0. El soporte se eliminará completamente en una futura versión menor.

Para obtener más información sobre esta versión, consulte las notas de versión v6.16.0 en GitHub.

La versión6.15 del driver de Node.js incluye las siguientes funcionalidades:

  • Agrega el soporte para proporcionar credenciales personalizadas de AWS al configurar la autenticación o la encriptación en uso. Debe proporcionar la firma de función personalizada en la siguiente forma:

    () => Promise<AWS.Credentials>

    También puede especificar cadenas de proveedores desde el SDK de AWS, lo que le permite personalizar sus opciones. Para ver ejemplos de cómo proporcionar credenciales personalizadas, consulte las notas de la versión v6.15.0 en GitHub.

  • Corrige un error que causaba que un MongoClient configurado para OIDC con un AbortSignal se cancelara en el cursor cuando el cliente se volvía a autenticar.

  • Corrige un error que provocaba que una reserva no controlada se lanzara cuando un timeoutms caducaba antes de que una operación llegara al proceso de selección de servidor.

  • Corrige un error causado por cerrar un flujo de cambio durante el procesamiento de un evento de cambio. Este error provocó que un error potencial rechazara una promesa interna que representa el cambio "siguiente".

Para obtener más información sobre esta versión, consulte las notas de versión v6.15.0 en GitHub.

La versión6.14 del driver de Node.js incluye las siguientes funcionalidades:

  • Añade compatibilidad con la $lookup etapa de agregación en colecciones cifradas. Debe actualizar su mongodb-client-encryption paquete a la versión 70006.3.0 o posterior para usar esta función.

  • Utiliza la implementación del método isUint8Array() del controlador para evitar la importación del paquete util/types.

  • Revierte la compatibilidad de la versión de @aws-sdk/credential-providers a v3.188.0.

Para obtener más información sobre esta versión, consulte las notas de versión v6.14.0 en GitHub.

La versión6.13 del driver de Node.js incluye las siguientes funcionalidades:

  • Añade un nuevo registrador estandarizado que permite comprender las operaciones de la base de datos sin modificar el código. Puede habilitar y configurar el registrador mediante variables de entorno, como se muestra en el siguiente ejemplo:

    env MONGODB_LOG_ALL=debug node server.mjs

    Para aprender más sobre el registro, consulte la guía Registro.

  • Mejora el rendimiento de la supervisión de comandos al remover copias profundas de objetos de comandos y respuestas. Modificar los valores de comando y respuesta podría conducir a un comportamiento indefinido.

  • Añade una funcionalidad experimental de señal de interrupción. Puedes pasar el comando signal a los siguientes métodos para interrumpir la ejecución del método cuando se active la señal:

    • collection.find()

    • collection.findOne()

    • collection.aggregate()

    • collection.countDocuments()

    • db.listCollections()

    • db.command()

    Abortar una señal cierra una conexión, lo que podría provocar un restablecimiento de conexión innecesario.

  • Para evitar posibles errores de tiempo de espera de DNS, el controlador captura y vuelve a intentar las búsquedas de DNS al resolver cadenas de conexión mongodb+srv://.

  • MongoClient.close() también cierra cualquier cursor asociado.

  • Puedes invocar de forma segura MongoClient.close() de forma concurrente, pero no se recomienda hacerlo si se puede evitar.

  • Corrige un problema que causaba que la autenticación MONGODB-OIDC no se reautenticara correctamente si el handshake incluía la autenticación especulativa.

Para obtener más información sobre esta versión, consulte las notas de versión v6.13.0 en GitHub.

La versión6.12 del driver de Node.js incluye las siguientes funcionalidades:

  • Agrega compatibilidad con v2.0 del algoritmo de compresión zstd. Para más información sobre zstd v2.0, ver los zstd notas de versión en GitHub.

  • Actualiza el paquete bson a la versión v6.10.1. Para obtener más información sobre esta versión, consulta las Notas de la versión v6.10.1 del paquete bson en GitHub.

  • El driver rellena el campo ServerDescription.error con un tipo de error más específico y un mensaje al marcar como obsoleto a un miembro primario del set de réplicas.

  • El controlador lee datos del socket con un flujo en modo de objeto en lugar de modo de búfer. Esto evita errores de análisis de mensajes en casos raros causados por fragmentación inexacta de datos.

  • Si el controlador encuentra un error al conectarse a un proxy socks5, ya no envuelve el error socks5 en un MongoNetworkError. Esto evita que el controlador envuelva un MongoNetworkError en otro MongoNetworkError.

Para obtener más información sobre esta versión, consulte las notas de versión v6.12.0 en GitHub.

La versión6.11 del driver de Node.js incluye las siguientes funcionalidades:

  • Agrega compatibilidad con Node.js v22.

  • Agrega la funcionalidad de tiempo de espera para operaciones del lado del cliente (CSOT). Puede usar CSOT para aplicar un único tiempo de espera para todos los pasos necesarios para completar una operación del lado del servidor, incluidos la selección del servidor, la verificación de la conexión, la serialización y la ejecución en el lado del servidor. Para obtener más información, consulta la guía Limitar el tiempo de ejecución del servidor.

    Nota

    Funcionalidad Experimental

    La funcionalidad CSOT es experimental y podría cambiar en futuras versiones de driver.

  • Agrega soporte de autenticación OIDC para entornos de Kubernetes. Para aprender más sobre esta funcionalidad, consulta la guía de Mecanismo de autenticación OIDC.

    Para usar OIDC para autenticarse desde un entorno de Kubernetes, configure la opción de conexión authMechanismProperties como ENVIRONMENT:k8s en su cadena de conexión. Puede usar esta función al conectarse a un entorno que se ejecute en Elastic Kubernetes Service de Amazon, Google Kubernetes Engine o Azure Kubernetes Service.

  • El bson paquete añade compatibilidad con datos vectoriales binarios. Para obtener más información sobre esta función, consulte las notas de la versión v6.10.0 del bson paquete en GitHub.

  • El controlador emite ConnectionClosedEvents después de PoolClearedEvents.

Para obtener más información sobre esta versión, consulte las notas de versión v6.11.0 en GitHub.

La versión v6.10 del driver de Node.js es la primera versión oficial en admitir todas las funcionalidades del servidor MongoDB 8.0 e incluye las siguientes mejoras y soluciones:

  • Elimina el soporte para MongoDB Server 3.6.

  • Agrega soporte para la API de escritura masiva del Servidor MongoDB 8.0, la cual soporta operaciones de escritura masiva en múltiples bases de datos y colecciones en una sola llamada.

  • Permite nombres de host SRV con menos de tres partes separadas por caracteres .. Por ejemplo, el controlador ahora admite nombres de host como mongodb+srv://mongodb.local.

  • Se admite la opción de explicación para recuperar un valor maxTimeMS preciso para los comandos CRUD que describen el tiempo de la operación. Las opciones de explicación para las operaciones de búsqueda y agregación están obsoletas.

Para obtener más información sobre esta versión, consulte las notas de versión v6.10.0 en GitHub.

  • La compatibilidad con MongoDB Server 3.6 está obsoleta y se eliminará en una futura versión del controlador.

  • El controlador admite de forma nativa la gestión explícita de recursos para cursores y los objetos MongoClient, ClientSession y ChangeStream. Al usar una versión compatible de Node.js, puede implementar la gestión explícita de recursos mediante el método cursor.stream() y la clase GridFSDownloadStream.

    Para aprender a utilizar la gestión explícita de recursos, consulta las Notas de la Versión v6.9.0 en GitHub. Para obtener más información sobre la gestión explícita de recursos, consulta la Propuesta de gestión explícita de recursos de ECMAScript en el sitio web de TC39.

  • Si utilizas Node.js 18.13 o una versión posterior, puedes pasar las opciones autoSelectFamily y autoSelectFamilyTimeout al constructor MongoClient. Cuando la opción autoSelectFamily está en true, el controlador selecciona automáticamente entre una conexión IPv4 o IPv6. La opción autoSelectFamilyTimeout especifica el tiempo de espera, en milisegundos, para que el controlador seleccione la familia de conexiones.

    El siguiente ejemplo de código muestra cómo usar estas opciones:

    const client = new MongoClient(uri,
    { autoSelectFamily: true, autoSelectFamilyTimeout: 100 });
  • El constructor MongoClient acepta la opción allowPartialTrustChain. Esta opción controla la bandera X509_V_FLAG_PARTIAL_CHAIN de OpenSSL.

  • El ConnectionCheckedOutEvent y el ConnectionCheckFailedEvent ahora incluyen una propiedad durationMS. Esta propiedad indica el tiempo transcurrido entre el inicio y el final de una operación de checkout de conexión.

  • Si estás utilizando Node.js 18 o posterior, el controlador ignora la opción cryptoCallbacks y utiliza devoluciones de llamada definidas en C++, lo que mejora significativamente el rendimiento del cifrado. Este cambio está disponible en la versión6.1.0 versión del paquete mongodb-client-encryption.

  • Para mejorar la seguridad, las opciones que especifican la ruta de generación y los argumentos para mongocryptd deben ser propiedades propias de autoEncryption.extraOptions. Este cambio ayuda a prevenir errores de contaminación global del prototipo relacionados con estas opciones. Para obtener más información sobre las propiedades propias, consulta Object.hasOwn() en MDN.

  • Añade soporte oficial para consultas por rango de Queryable Encryption (QE). Para utilizar esta funcionalidad, su aplicación debe emplear mongodb-client-encryption v6.1.0 o versiones posteriores y debe conectarse a MongoDB Server 8.0 o versiones posteriores. Para obtener más información sobre las consultas de rango de QE, consulte la sección Queryable Encryption en el manual de MongoDB Server.

  • Los métodos insertMany() y bulkWrite() aceptan entradas de ReadonlyArray.

  • El driver reintenta las operaciones de guardado en función del código de nivel superior, encontrado en error.code, en lugar del código anidado en error.result.writeConcernError.code. Esto soluciona un problema en clústeres fragmentados que utilizan versiones de MongoDB Server anteriores a 4.4.

  • La propiedad LocalKMSProviderConfiguration.key acepta una instancia de BSON Binary para AutoEncryptionOptions.

  • En TypeScript, la clase BulkOperationBase reporta la propiedad getter length.

  • El tipo MongoWriteConcernError ahora conserva el código original de nivel superior en MongoWriteConcernError.code.

  • El método cursor.toArray() vacía el lote actual de documentos en el arreglo antes de volver a llamar al iterador asíncrono. Este cambio evita los retrasos asociados con la ejecución async/await y mejora el rendimiento en un 5% en promedio. Esta optimización no se aplica si proporcionas una transformación al método cursor.map() antes de llamar al método toArray().

  • Corrige el uso mixto del método cursor.next() con la sintaxis for await.

  • Agrega la opción enableUtf8Validation al deserializar BSON, que se eliminó inadvertidamente en el controlador Node.js v6.8.

  • Agrega la propiedad durationMS a la clase ConnectionReadyEvent. Esta propiedad representa el tiempo entre el evento de creación de la conexión y cuando se activa el ConnectionReadyEvent.

Para obtener más información sobre esta versión, consulte las notas de versión v6.9.0 en GitHub.

La versión6.8 del driver de Node.js incluye las siguientes funcionalidades:

  • Corrige un error por el que un proveedor local de KMS aceptaba una instancia BSON Binary en tiempo de ejecución, pero el compilador de TypeScript solo permitía valores de tipo Buffer y string.

  • El error ReadConcernMajorityNotAvailableYet ahora es un error de lectura que se puede volver a intentar.

  • Ahora puedes asociar un nombre y proporcionar múltiples claves para los proveedores de KMS. Esta funcionalidad requiere mongodb-client-encryption v6.0.1 o posterior. No puedes usar proveedores de KMS con nombre si tu aplicación utiliza la capacidad de actualización automática del proveedor de KMS.

    El siguiente ejemplo de código muestra cómo configurar un objeto ClientEncryption con múltiples claves de AWS:

    const clientEncryption = new ClientEncryption(keyVaultClient, {
    'aws:key1': {
    accessKeyId: ...,
    secretAccessKey: ...
    },
    'aws:key2': {
    accessKeyId: ...,
    secretAccessKey: ...
    },
    clientEncryption.createDataKey('aws:key-1', { ... });
  • Cuando crea una clave de datos KMIP, ahora puede especificar la opción delegated. Si esta opción está establecida en true, el proveedor de KMIP realiza el cifrado y descifrado de la clave de datos localmente, garantizando que la llave de cifrado nunca abandone el servidor KMIP. Esta funcionalidad requiere mongodb-client-encryption v6.0.1 o posterior.

    El siguiente ejemplo de código muestra cómo especificar esta opción:

    clientEncryption.createDataKey('kmip', { masterKey: { delegated: true } } );
  • El controlador ahora decodifica las respuestas BSON a medida que el cursor las recorre, en lugar de decodificar toda la respuesta BSON cuando se recibe.

  • La versión de Github para el paquete mongodb ahora incluye un archivo de firma separado, mongodb-X.Y.Z.tgz.sig, para el paquete NPM. Este cambio se aplica a cada versión principal y de parche de las versiones 5.x y 6.x del controlador. Para verificar la firma del paquete, sigue las instrucciones de la sección Integridad de la publicación del archivo README.md en el repositorio de GitHub del controlador.

Para obtener más información sobre esta versión, consulte las notas de versión v6.8.0 en GitHub.

La versión6.7 del driver de Node.js incluye las siguientes funcionalidades:

  • Añade compatibilidad con el mecanismo de autenticación MONGODB-OIDC al conectarse a MongoDB Server v7.0 y versiones posteriores. El controlador admite la autenticación con las facetas de autenticación de máquinas de Azure, autenticación de máquinas de GCP, autenticación de devolución de llamada y autenticación de devolución de llamada de interacción humana.

  • Soluciona un problema donde configurar el indicador useBigInt64 en true causaba que la función interna compareTopologyVersion generara un error.

Para obtener más información sobre esta versión, consulte las notas de versión v6.7.0 en GitHub.

La versión6.6 del driver de Node.js incluye las siguientes funcionalidades:

  • Actualizaciones para usar BSON 6.7.0. Para obtener detalles sobre las nuevas funcionalidades de BSON, consulta las notas de versión de BSON 6.5.0, BSON 6.6.0, y BSON 6.7.0.

  • Añade el método addStage() a la API de agregación fluida. Puedes usar este método para añadir etapas de la canalización de agregación individualmente, como se muestra en el siguiente ejemplo:

    const documents = await users.aggregate().addStage({ $project: { name: true } }).toArray();
  • Agrega los campos cause y dependencyName a la clase MongoMissingDependencyError. Puedes usar estos campos para determinar de manera automatizada si falta un paquete o por qué un paquete no se cargó.

  • Agrega la propiedad minRoundTripTime a la clase ServerDescription. Esta propiedad contiene el tiempo mínimo de ida y vuelta durante los últimos 10 pulsos de latido.

  • Agrega el método toJSON() a la clase TopologyDescription. Aunque puedes utilizar este método para convertir objetos TopologyDescription a JSON, recomendamos utilizar el método util.inspect() de Node en su lugar, ya que gestiona correctamente todos los tipos utilizados en JavaScript y el controlador.

  • Agrega compatibilidad con opciones de cursor para los métodos Collection.indexExists(), Collection.indexes() y Collection.indexInformation() en Typescript.

  • Elimina la compatibilidad con las opciones readConcern y writeConcern del método Collection.listSearchIndexes(). listSearchIndexes() es un método específico de Atlas y los índices de búsqueda de Atlas no admiten estas opciones.

  • Redefine el ServerDescription.roundTripTime propiedad como un promedio móvil. Anteriormente, era un promedio ponderado de la duración del latido cardíaco observada más recientemente y la duración anterior.

  • Puedes especificar el tipo de índice de búsqueda al crear el índice, como se muestra en el siguiente ejemplo:

    const indexName = await collection.createSearchIndex({
    name: 'my-vector-search-index',
    type: 'vectorSearch',
    definition: {
    mappings: { dynamic: false }
    }
    });
  • La propiedad UpdateFilter.$currentDate ya no genera un error cuando se pasa a un método compuesto, como findOneAndUpdate(), en una colección con un esquema limitado.

  • El controlador arroja un MongoTransactionError sólo si se proporciona un ReadPreferenceMode distinto de primary y luego se intenta realizar un comando que implique una operación de lectura.

  • El tipo de dato de la propiedad TopologyDescription.error es MongoError.

  • El método Collection.indexExists() ya no admite la opción full.

  • Los métodos Collection.indexInformation(), Collection.indexes(), y Db.indexInformation() tienen un tipo de retorno de IndexDescriptionCompact | IndexDescriptionInfo[] en TypeScript.

  • Al recuperar las credenciales de AWS KMS (Key Gestión System), el driver ya no lanza un error cuando recibe una clave de acceso que incluye una marca de tiempo de expiración.

  • La interfaz ClusterTime ya no define el campo signature como se requiere en TypeScript.

Para obtener más información sobre esta versión, vea los Aspectos destacados de la versión v6.6.0 en GitHub.

La versión6.5 del driver de Node.js incluye las siguientes funcionalidades:

  • Actualiza las operaciones de escritura masiva para utilizar la clase pkFactory para la generación de ID de documentos.

Advertencia

Si anteriormente se especificaste una instancia de un pkFactory para gestionar escrituras en bloque, los campos _id de los documentos insertados mediante escrituras en bloque pueden ser inconsistentes con el comportamiento en esta versión.

  • Corrige el parámetro de preferencia de lectura que se envía con las operaciones de lectura a primaryPreferred cuando el driver está conectado a un nodo secundario en el set de réplicas.

  • Arregla una fuga de memoria en la creación de promesas para operaciones de socket.

  • Reduce la latencia de la conexión inicial al conectarse a una lista de nodos iniciales DNS haciendo consultas a los registros SRV y TXT en paralelo.

  • Agrega seguimiento a los metadatos del contenedor al ejecutar un cliente en Kubernetes o un entorno de contenedor en el campo client.env.container del documento de apretón de manos.

  • Agrega el documento de error original devuelto por el servidor al campo errorResponse del documento MongoServerError.

  • Desaprueba la interfaz CloseOptions que no utiliza el controlador.

Para obtener más información sobre esta versión, vea los Aspectos destacados de la versión v6.5.0 en GitHub.

La versión6.4 del driver de Node.js incluye las siguientes funcionalidades:

  • Cuando hay varias instancias mongos disponibles, se usan diferentes servidores para los intentos de reintento de lectura y escritura.

  • Guarda en caché las credenciales de AWS a nivel del cliente, en lugar de por cada autenticación.

  • Actualización para usar BSON 6.4.0. Para detalles sobre las nuevas funcionalidades de BSON, revisa las notas de versión para BSON 6.3.0 y BSON 6.4.0.

  • Las operaciones de lectura que resulten en un error ExceededTimeLimit se vuelven a intentar.

  • Corrige un problema de solicitud relacionado con los sockets TLS y los proveedores KMS.

  • Corrige el relleno base64 en el comando saslContinue para permitir la autenticación de mongosh.

  • Los tipos countDocuments utilizan Filter<Schema> en lugar de Document, lo que permite el autocompletado y ayuda a evitar problemas de tipificación posteriores.

  • Corrige un error de tipo en la opción $addToSet del comando bulkWrite. El controlador omite la validación $addToSet si extiende los tipos de Document o any, o si utiliza propiedades de cualquier tipo.

  • Corrige la duración del latido del evento ServerHeartbeatSucceeded y ServerHeartbeatFailed para que no incluya el tiempo de creación del socket.

  • Emite correctamente los errores de las secuencias de transformación del cursor en lugar de absorberlos.

  • Hace que los tokens de sesión de AWS sean opcionales cuando se proporciona un nombre de usuario y una contraseña, y permite que AWS SDK gestione las solicitudes de autenticación.

Para obtener más información sobre esta versión, vea los Aspectos destacados de la versión v6.4.0 en GitHub.

La versión 6.3 del driver de Node.js incluye las siguientes funcionalidades:

  • Agrega la opción del cliente serverMonitoringMode para controlar el comportamiento de la conexión de supervisión entre los nodos en una topología. Esta opción toma un valor de auto (por defecto), poll o stream. Para obtener más información, consulta la entrada de esta opción en la guía Especificar opciones de conexión.

    Puedes establecer la opción serverMonitoringMode en una instancia de MongoClientOptions o como una opción de cadena de conexión. El siguiente ejemplo muestra cómo crear un cliente con la opción configurada en stream:

    new MongoClient('<connection string>', { serverMonitoringMode: 'stream' });
  • Corrige una fuga de conexión cuando se establece la opción de cliente serverApi.

  • Depreca las opciones de GridFS contentType y aliases. Para almacenar el tipo de contenido y los alias de un archivo, añade los campos contentType y aliases al documento metadata.

Para aprender más sobre este lanzamiento, ver v6.3.0 Release Highlights.

La versión 6.2 del driver de nodo.js incluye las siguientes funcionalidades:

  • Actualiza la versión del paquete bson a la 6.2.0 para incluir la visualización de colores de los tipos, como se muestra en la siguiente imagen:

    Una captura de pantalla del terminal que muestra la impresión en color

    Para obtener más información, consulta las notas de versión de bson v6.2.0.

  • Asegura que la propiedad result.insertedIds de un tipo de error de escritura masiva contenga los valores _id de los documentos insertados con éxito. En versiones anteriores, cuando una operación de escritura masiva rechazaba una inserción, la propiedad result.insertedIds contenía los valores _id para todas las inserciones intentadas.

  • Cierra la sesión implícita creada al ejecutar el método findOne() en una colección de series de tiempo, independientemente del resultado de la operación.

  • Permite la creación de colecciones cuyos nombres empiezan o terminan con el carácter .. Este cambio alinea el comportamiento de comprobación de nombres de la base de datos y la colección del controlador con el del servidor.

Para aprender más sobre este lanzamiento, ver v6.2.0 Release Highlights.

La versión 6.1 del driver de Node.js incluye las siguientes funcionalidades:

  • Actualiza la versión del paquete bson a 6.1.0 para exponer el método Decimal128.fromStringWithRounding(). Para obtener más información, consulta las notas de versión6.1.0 de BSON.

  • Detecta variables de entorno para la configuración de región al autenticarse mediante la acción AssumeRoleWithWebIdentity de IAM con MONGODB-AWS autenticación. Para indicar al controlador que utilice sus opciones de región, debe configurar las dos siguientes variables de entorno:

    • AWS_STS_REGIONAL_ENDPOINTS

    • AWS_REGION

    Para aprender a configurar las preferencias de región al usar el mecanismo de autenticación MONGODB-AWS, consulta el Web Identity Token pestaña en la guía AWS IAM mecanismo de autenticación.

  • Soluciona un problema de fuga de memoria causado por llamadas recursivas al método next() del tipo ChangeStream.

Para aprender más sobre este lanzamiento, ver v6.1.0 Release Highlights.

Advertencia

Cambios disruptivos en la v6.0

Esta versión del driver introduce cambios disruptivos. Para obtener una lista de estos cambios, consulta la sección Cambios disruptivos de la versión 6.0 en la guía de actualización.

La versión v6.0 del controlador Node.js incluye las siguientes características:

Importante

Aviso de obsolescencia

Todas las opciones con el prefijo sslen el tipo MongoClientOptions están obsoletas. Además, la opción tlsCertificateFile está en desuso.

En su lugar, deben almacenar sus certificados en un objeto SecureContext o configurar las opciones con prefijo tlsen su instancia de MongoClientOptions. Para obtener más información, consulte Habilitar TLS en una conexión.

  • Eliminación del soporte para el comando asistente addUser(). Utiliza el comando createUser de MongoDB Shell en su lugar.

  • Se ha eliminado la compatibilidad con la collStats operación. En su lugar, utilice el operador de agregación $collStats.

  • El campo options del tipo ConnectionPoolCreatedEvent contiene solo los siguientes campos, que son las opciones de grupo no por defecto:

    • maxConnecting

    • maxPoolSize

    • minPoolSize

    • maxIdleTimeMS

    • waitQueueTimeoutMS

  • El controlador lee asincrónicamente los archivos establecidos en las opciones de conexión tlsCAFile y tlsCertificateKeyFile cuando llamas al método MongoClient.connect(), no cuando creas una instancia de MongoClient.

  • Eliminación de las opciones de conexión keepAlive y keepAliveInitialDelay. El valor de keepAlive se establece permanentemente en true y el valor de keepAliveInitialDelay se establece en 300000 milisegundos (300 segundos).

    Para aprender a configurar los parámetros de keepalive a nivel de sistema, consulte la sección de preguntas frecuentes "¿Afecta el tiempo de keepalive de TCP a las implementaciones de MongoDB?" en el manual del servidor.

  • Remueve las siguientes opciones para el método Db.command():

    • willRetryWrite

    • omitReadPreference

    • writeConcern

    • explain

    • readConcern

    • collation

    • maxTimeMS

    • comment

    • retryWrites

    • dbName

    • authdb

    • noResponse

    Aunque no puedes pasar estas opciones al método Db.command(), aún puedes establecerlas en el documento de comando. Para obtener más información, consulta la sección Opciones de Comando de la guía Ejecutar un comando de base de datos.

Para aprender más sobre este lanzamiento, ver v6.0.0 Release Highlights.

Volver

Implementar una aplicación en Vercel