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, realice las siguientes acciones:

  • Asegúrese de que la nueva versión del controlador sea compatible con la versión del servidor MongoDB a la que se conecta su aplicación y con la versión de Node.js en la que se ejecuta. Consulte Página de Tablas de compatibilidad de la biblioteca de cliente para obtener 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 API estable.

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

npm install mongodb@6.21

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

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

Los cambios importantes de esta sección se clasifican según las versiones principales que los introdujeron. Al actualizar las versiones del controlador, aborde todos los cambios importantes entre su versión actual y la versión de actualización prevista. Por ejemplo, si actualiza el controlador de la versión3.x a la versión5.x, aborde todos los cambios importantes enumerados en las versiones4.0 y5.0.

  • La versión 6.0 del controlador Node.js requiere Node.js v16.20.1 o posterior.

  • El controlador ya no admite el addUser() comando auxiliar. En su lugar, utilice el comando createUser de MongoDB Shell.

  • El controlador elimina la compatibilidad con la collStats operación. Utilice el operador de agregación $collStats en su lugar.

  • El controlador elimina todas las opciones obsoletas con el prefijo ssly la opción tlsCertificateFile del tipo MongoClientOptions. Cree un objeto SecureContext o configure las opciones con el prefijo tlsen su instancia MongoClientOptions.

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

  • El controlador elimina 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 ahora están en el controlador de Node.js. Debe importarlos desde el controlador en lugar de desde mongodb-client-encryption.

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

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

  • Se eliminaron los ayudantes de opciones de conexión que aceptaban valores distintos de true o false como booleanos. Debe 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 cadena para escribir en el objeto binario BSON.

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

  • El socks paquete, que habilita la compatibilidad con el5 proxy SOCKS, es una dependencia opcional entre pares. Debe instalarlo para habilitar SOCKS5 en su aplicación. Para obtener más información, consulte Habilitar la5 compatibilidad con el proxy SOCKS.

  • Si inicia una sesión en un cliente y luego pasa esa sesión a un cliente diferente, el controlador genera un error cuando realiza 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 withSession() método devuelve el valor devuelto por la función undefined proporcionada. En versiones anteriores withTransaction() del controlador, este método devolvía. El método devolvía el valor devuelto por la devolución de llamada. En versiones anteriores del controlador, este método devolvía la respuesta del comando del servidor, que varía según la versión o el tipo de servidor MongoDB al que se conecta el controlador. Para obtener más información sobre las transacciones, consulte las guías de la API de transacciones convenientes y la API principal, así como 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 usar esta versión del controlador, debe usar Node.js v14.20.1 o una versión posterior.

  • El controlador elimina la compatibilidad con devoluciones de llamadas y reemplaza una API basada en promesas. La siguiente lista proporciona algunas estrategias para que los usuarios de devoluciones de llamadas adopten esta versión:

    • Migrar a la API basada en promesas (recomendado)

    • Utilice 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 controlador ya no incluye módulos AWS SDK de forma predeterminada.

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

  • El controlador elimina la compatibilidad con bibliotecas Promise personalizadas. El controlador ya no admite la opción promiseLibrary de MongoClient ni la exportación Promise.set que permite especificar una biblioteca Promise personalizada.

  • El controlador elimina el soporte para el ayudante 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 propiedad de BulkResult

    • BulkWriteOptions.keepGoing opción

    • WriteConcernError.err() Método

    • AddUserOptions.digestPassword opción

    • Kerberos gssapiCanonicalizeHostName option

    • slaveOk opciones y métodos eliminados en favor de secondaryOk

    • ObjectID tipo eliminado en favor de ObjectId

    • AsyncIterator Interfaz eliminada en favor de AsyncGenerator

  • El controlador ya no es compatible con Node.js v12.8 o versiones anteriores. Si desea usar esta versión del controlador, debe usar Node.js v12.9 o una versión posterior.

  • Cursor Los tipos ya no extienden Readable directamente.

  • No se puede usar una instancia ChangeStream como iterador después de usarla como EventEmitter. Tampoco se puede hacer lo contrario: usar una instancia EventEmitter como iterador después de usarla como ChangeStream.

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

    • Collection.find()

    • Collection.aggregate()

    • Db.aggregate()

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

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

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

  • El tipo db.collection ya no acepta una devolución de llamada.

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

  • El controlador elimina el soporte para el ayudante Collection.group().

  • El controlador ya no incluye la API obsoleta GridStore.

Para obtener más información sobre estos cambios, consulte el registro4.0 de cambios v.

Un cambio de compatibilidad de versión del servidor es una modificación del controlador que interrumpe el soporte para un conjunto de versiones de MongoDB Server.

El controlador deja de brindar soporte para una versión de MongoDB Server una vez que alcanza el final de su vida útil (EOL).

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

  • El4.2 controlador v deja de ser compatible con MongoDB Server v3.4 y versiones anteriores. Para usar el4.2 controlador v, su MongoDB Server debe ser v3.6 o posterior. Para saber cómo actualizar su implementación de MongoDB Server, consulte las Notas de la versión en el manual de MongoDB Server.

Volver

Notas de versión

En esta página