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
/ /

Actualizar versiones de los controladores

En esta página, puedes aprender a actualizar tu controlador a una nueva versión. Esta página también incluye los cambios que debes realizar en tu aplicación para actualizar tu controlador sin perder funcionalidades, si corresponde.

Antes de actualizar, realiza las siguientes acciones:

  • Asegúrate de que la nueva versión del driver sea compatible con la versión de MongoDB Server a la que se conecta tu aplicación y con la versión de Node.js en la que se ejecuta tu aplicación. Vea la Tablas de compatibilidad de las Librerías de clientes página para esta información.

  • Aborde cualquier cambio importante entre la versión del controlador que usa su aplicación actualmente y la versión de actualización planificada en la sección "Cambios importantes" de esta guía. Para obtener más información sobre los cambios de compatibilidad de versiones de MongoDB Server, consulte la sección "Cambios de compatibilidad de versiones de Server".

Tip

Puede minimizar la cantidad de cambios que debe realizar en su aplicación al actualizar las versiones del controlador mediante el uso de Stable API.

Para actualizar la versión de tu controlador, ejecuta el siguiente comando en el directorio de tu aplicación:

npm install mongodb@7.1

Para actualizar a una versión diferente del driver, reemplaza la información después del @ símbolo con el número de versión que prefiera. Para obtener más información sobre el comando npm install, consulte la npm-install documentación de npm.

Un cambio disruptivo es una modificación en una convención o comportamiento en una versión específica del controlador que puede impedir que la aplicación funcione como se espera.

Los cambios disruptivos en esta sección están categorizados según las principales versiones que los introdujeron. Cuando actualices las versiones del driver, aborda todos los cambios disruptivos entre tu versión actual y la versión planificada de actualización. Por ejemplo, si se está actualizando el driver de la v3.x a la v5.x, se deben abordar todos los cambios disruptivos indicados bajo v4.0 y v5.0.

  • Actualiza las siguientes dependencias de driver y dependencias iguales a v7.0.0:

    • bson@7.0.0

    • mongodb-connection-string-url@7.0.0

    • mongodb-client-encryption@7.0.0

    • @mongodb-js/kerberos@7.0.0

    • @mongodb-js/zstd@7.0.0

  • Agrega los siguientes cambios disruptivos para la autenticación de AWS:

    • Requiere el paquete @aws-sdk/credential-providers para la autenticación MONGODB-AWS.

    • Cuando proporcionas un proveedor de credenciales de AWS personalizado para la propiedad de autenticación AWS_CREDENTIAL_PROVIDER, esta tiene la máxima prioridad sobre cualquier otro método de autenticación de AWS.

    • La obtención de credenciales está completamente gestionada por el SDK de AWS, que ahora es obligatorio. Todos los URI de cliente para la autenticación de AWS deben especificarse ahora en el siguiente formato:

      import { MongoClient } from 'mongodb';
      const client = new MongoClient('mongodb<+srv>://<host>:<port>/?authMechanism=MONGODB-AWS');

      El método anterior de proporcionar credenciales codificadas con URI directamente a la cadena de conexión según las propiedades AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY ya no funciona.

    Para obtener más información sobre MONGODB-AWS la autenticación, consulte la guía del mecanismo de autenticación de AWS IAM.

  • Te permite pasar cualquier opción de la etapa $changeStream a collection.watch(). Si una opción no es válida para la etapa $changeStream de la pipeline, el servidor devuelve un error.

  • Elimina el valor por defecto del cursor batchSize de 1000. Ahora debe habilitar explícitamente un batchSize en el cursor.

  • 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.

  • Elimina el soporte para funciones transform en cursores y flujos de cambios. En su lugar, puede usar un ReadableStream.map():

    // before
    const stream = cursor.stream({ transform: JSON.stringify });
    // after
    const stream = cursor.stream().map(JSON.stringify);
  • Remueve el soporte para la opción noResponse utilizada por endSessions al ejecutar MongoClient.close(). Utiliza un guardar sin acuse de recibo para evitar esperar la respuesta del servidor.

  • Elimina el mecanismo de autenticación MONGODB-CR no admitido.

  • Elimina las siguientes propiedades internas ClientMetadata de la API pública:

    MongoClient.options.additionalDriverInfo;
    MongoClient.options.metadata;
    MongoClient.options.extendedMetadata;
    MongoOptions.additionalDriverInfo;
    MongoOptions.metadata;
    MongoOptions.extendedMetadata;
    ConnectionOptions.metadata;
    ConnectionOptions.extendedMetadata;
  • Elimina el espacio de nombres beta y mueve toda la configuración explícita de administración de recursos a cada recurso desechable, como MongoClient o ClientSession.

  • El servidor, en lugar del driver, genera un error para una agregación con las opciones writeConcern y explain establecidas.

  • Garantiza que todos los errores generados durante el cifrado sean subclases de MongoError, como parte de la nueva actualización mongodb-client-encryption v7.

  • Para un error de conexión criptográfica, devuelve un MongoRuntimeError en lugar de un MissingDependencyError.

  • Para TypeScript, mejora la tipificación de las rutas de archivos en AutoEncryptionOptions arrojando un error si el nombre de archivo especificado no coincide con el nombre por defecto del archivo.

  • Cambia el nombre de la etiqueta de error PoolRequstedRetry a PoolRequestedRetry para corregir el error tipográfico.

  • Descarta el soporte para nodo16 y nodo18.

  • Se eliminan los siguientes tipos, clases y opciones en desuso:

    GridFSFile.contentType;
    GridFSFile.aliases;
    GridFSBucketWriteStreamOptions.contentType;
    GridFSBucketWriteStreamOptions.aliases;
    CloseOptions;
    ResumeOptions;
    MongoClientOptions.useNewUrlParser;
    MongoClientOptions.useUnifiedTopology;
    CreateCollectionOptions.autoIndexId;
    FindOptions<TSchema>; // now no generic type
    ClientMetadataOptions;
    FindOneOptions.batchSize;
    FindOneOptions.limit;
    FindOneOptions.noCursorTimeout;
    ReadPreference.minWireVersion;
    ServerCapabilities;
    CommandOperationOptions.retryWrites; // is a global option on the MongoClient
    ClientSession.transaction;
    Transaction;
    CancellationToken;
  • La versión 6.0 del controlador de Node.js requiere Node.js v16.20.1 o posterior.

  • El driver elimina el soporte para el comando asistente addUser(). Utiliza el comando createUser de MongoDB Shell en su lugar.

  • El driver elimina el soporte para la operación collStats. Use el operador de agregación $collStats en su lugar.

  • El driver remueve todas las opciones obsoletas con el prefijo ssly la opción tlsCertificateFile en el tipo MongoClientOptions. Cree un objeto SecureContext o establezca las opciones con prefijo tlsen su instancia MongoClientOptions en su lugar.

  • El controlador lee archivos establecidos en las opciones de conexión tlsCAFile y tlsCertificateKeyFile cuando se llama al método MongoClient.connect(), no cuando se crea la instancia de MongoClient.

  • El driver remueve 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).

  • El Db.command() método solo acepta opciones que no están relacionadas con un comando específico. Para obtener más información sobre estas opciones, consulte la sección "Opciones de comando" de la guía "Ejecutar un comando".

  • Si agrega mongodb-client-encryption como dependencia, el número de versión principal debe coincidir con el del controlador de Node.js. Por ejemplo, el controlador de Node.js v6.xx requiere mongodb-client-encryption v6.xx.

  • Los métodos de cifrado automático ya están en el driver Node.js. Debe importar estos métodos desde el controlador en lugar de desde mongodb-client-encryption.

  • Se eliminó el constructor ObjectId que aceptaba una cadena de 12 caracteres.

  • Se modificaron los métodos abortTransaction() y commitTransaction() para que devuelvan null en lugar de los resultados brutos del comando.

  • Se eliminaron los asistentes de opciones de conexión que aceptaban valores distintos de true o false como valores booleanos. Debes proporcionar valores true o false en la cadena de conexión o en el constructor de MongoClient.

  • Se eliminó el constructor de tipo BSON Binary que aceptaba una cadena.

  • El método Binary.write() ya no acepta una string para guardar en el objeto BSON binario.

  • La API ClientEncryption devuelve promesas en lugar de devoluciones de llamadas.

  • El paquete socks, que permite la compatibilidad con el proxy SOCKS5, es una dependencia opcional de igual a igual. Debe instalar el paquete para habilitar SOCKS5 en su aplicación. Para aprender más, consultá Habilitar compatibilidad con el proxy SOCKS5.

  • Si se inicia una sesión en un cliente y luego se pasa esa sesión a otro cliente, el driver lanza un error al realizar cualquier operación en la sesión.

  • La includeResultMetadata opción para los métodos de operaciones compuestas es false por defecto. Consulte la sección "Métodos integrados" de la guía de Operaciones compuestas para obtener más información.

  • El método withSession() devuelve el valor que la función proporcionada devuelve. En versiones anteriores del controlador, este método devuelve undefined. El método withTransaction() devuelve el valor que devuelve la función de retorno. En versiones anteriores del driver, este método devuelve la respuesta del comando del servidor, que varía dependiendo de la versión del MongoDB Server o del tipo al que el driver se conecta. Para obtener más información sobre las transacciones, consulta las guías de la API de transacciones conveniente y la Core API y la guía de Transacciones.

  • Se elevó la versión mínima de la dependencia opcional kerberos a 2.0.1 y se eliminó el soporte para la versión 1.x.

  • Se elevó la versión mínima de la dependencia opcional zstd a 1.1.0.

  • El controlador ya no es compatible con Node.js v12 o versiones anteriores. Si desea utilizar esta versión del driver, debe utilizar Node.js v14.20.1 o superior.

  • El controlador remueve el soporte para funciones de retorno en favor de una API basada en Promesas. La siguiente lista proporciona algunas estrategias para que los usuarios de función de retorno adopten esta versión:

    • Migrar a la API basada en promesas (recomendado)

    • Utiliza la API basada en promesas y util.callbackify

    • Agregue mongodb-legacy para continuar usando funciones de retorno

    Para obtener más información sobre estas estrategias,consulte el5.0 registro de cambios v.

  • El controlador elimina la compatibilidad con los métodos auxiliares Collection.insert(), Collection.update() y Collection.remove(). La siguiente lista proporciona instrucciones sobre cómo reemplazar la funcionalidad de los métodos eliminados:

    • Migrar de Collection.insert() a insertOne() o insertMany()

    • Migrar de Collection.update() a updateOne() o updateMany()

    • Migrar de Collection.remove() a deleteOne() o deleteMany()

  • El driver ya no incluye por defecto los módulos del AWS SDK.

  • El controlador ya no importa automáticamente el paquete bson-ext.

  • El driver remueve el soporte para librerías personalizadas Promise. El driver ya no es compatible con la opción promiseLibrary de MongoClient y la exportación Promise.set que permite especificar una librería Promise personalizada.

  • El driver remueve la compatibilidad con el asistente Collection.mapReduce().

  • El tipo BulkWriteResult ya no tiene la propiedad enumerable públicamente result.

  • Se han eliminado los siguientes tipos, opciones y métodos:

    • BulkResult.lastOp() Método

    • opTime propiedades de BulkResult

    • BulkWriteOptions.keepGoing opción

    • WriteConcernError.err() Método

    • AddUserOptions.digestPassword opción

    • Kerberos gssapiCanonicalizeHostName option

    • slaveOk se eliminaron las opciones y el método en favor de secondaryOk

    • ObjectID tipo eliminado en favor de ObjectId

    • AsyncIterator interfaz eliminada a favor de AsyncGenerator

  • El controlador ya no es compatible con Node.js v12.8 o anterior. Si desea utilizar esta versión del controlador, debe utilizar Node.js v12.9 o superior.

  • Cursor los tipos ya no extienden directamente Readable.

  • No puedes usar una instancia ChangeStream como iterador después de usarla como EventEmitter. Tampoco puedes hacer lo contrario—usar una instancia de EventEmitter como iterador después de haberla usado como ChangeStream.

  • Los siguientes métodos ya no aceptan un parámetro de función de retorno:

    • Collection.find()

    • Collection.aggregate()

    • Db.aggregate()

  • El valor por defecto de la opción de conexión maxPoolSize ahora es 100.

  • El controlador ya no admite la opción gssapiServiceName Kerberos. Utilice authMechanismProperties.SERVICE_NAME en su lugar.

  • El driver ya no acepta tipos no booleanos, como 0 o 1, para opciones booleanas.

  • El tipo db.collection ya no acepta una función de retorno.

  • El tipo Db ya no es un EventEmitter. Puedes escuchar cualquier evento directamente desde la instancia MongoClient.

  • El driver remueve la compatibilidad con el asistente Collection.group().

  • El driver ya no incluye la API GridStore obsoleta.

Para obtener más información sobre estos cambios, consulta el registro de cambios de la v4.0.

Un cambio de compatibilidad de versión del servidor es una modificación al driver que descontinúa el soporte para un conjunto de versiones de MongoDB Server.

El driver interrumpe el soporte para una versión de MongoDB Server después de que esta llegue a su final de vida útil (EOL).

Para obtener más información sobre el soporte de MongoDB para productos EOL, consulte la Política de soporte heredado.

  • El controlador v4.2 deja de admitir MongoDB Server v3.4 y versiones anteriores. Para usar la v4.2 driver, tu servidor de MongoDB debe ser v3.6 o posterior. Para aprender cómo actualizar tu implementación de MongoDB Server, consulta las notas de versión en el manual de MongoDB Server.

Volver

Notas de versión

En esta página