Overview
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.
Cómo actualizar
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.
Aborda cualquier cambio disruptivo entre la versión del driver que tu aplicación utiliza actualmente y tu versión prevista de actualización en la sección Cambios Disruptivos de esta guía. Para obtener más información sobre los cambios de compatibilidad en el lanzamiento de MongoDB Server, consulte la sección Cambios de compatibilidad en el lanzamiento del servidor.
Tip
Puedes minimizar la cantidad de cambios que debes realizar en tu aplicación al actualizar las versiones del controlador utilizando el Stable API.
Para actualizar la versión de tu controlador, ejecuta el siguiente comando en el directorio de tu aplicación:
npm install mongodb@6.21
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.
cambio disruptivo
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.
Versión 6.0 cambio disruptivo
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óntlsCertificateFileen el tipoMongoClientOptions. Cree un objetoSecureContexto establezca las opciones con prefijotlsen su instanciaMongoClientOptionsen su lugar.El controlador lee archivos establecidos en las opciones de conexión
tlsCAFileytlsCertificateKeyFilecuando se llama al métodoMongoClient.connect(), no cuando se crea la instancia deMongoClient.El driver remueve las opciones de conexión
keepAliveykeepAliveInitialDelay. El valor dekeepAlivese establece permanentemente entruey el valor dekeepAliveInitialDelayse establece en 300000 milisegundos (300 segundos).El método
Db.command()acepta sólo las opciones que no están relacionadas con un comando específico. Para obtener más información sobre estas opciones, consulta la sección Opciones de comando de la guía Ejecutar un comando.Si añades
mongodb-client-encryptioncomo dependencia, el número de la versión principal debe coincidir con el de Node.js driver. Por ejemplo, el controlador Node.js v6.x.x requieremongodb-client-encryptionv6.x.x.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
ObjectIdque aceptaba una string de 12 caracteres.Se modificaron los métodos
abortTransaction()ycommitTransaction()para que devuelvannullen lugar de los resultados brutos del comando.Se eliminaron los asistentes de opciones de conexión que aceptaban valores distintos de
trueofalsecomo valores booleanos. Debes proporcionar valorestrueofalseen la cadena de conexión o en el constructor de MongoClient.Se eliminó el constructor de tipo BSON
Binaryque aceptaba una string.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 callbacks.
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 opción
includeResultMetadatapara los métodos de operación compuesta estáfalsepor defecto. Consulta la sección Métodos de funcionalidad incorporada de la guía de Operaciones Compuestas para 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 devuelveundefined. El métodowithTransaction()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
kerberosa 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
zstda 1.1.0.
Version 5.0 Cambios disruptivos
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.callbackifyAgregue
mongodb-legacypara continuar usando funciones de retorno
Para obtener más información sobre estas estrategias, consulta el registro de cambios v5.0.
El controlador elimina el soporte para los métodos auxiliares
Collection.insert(),Collection.update()yCollection.remove(). La siguiente lista proporciona instrucciones sobre cómo reemplazar la funcionalidad de los métodos eliminados:Migrar de
Collection.insert()ainsertOne()oinsertMany()Migrar de
Collection.update()aupdateOne()oupdateMany()Migrar de
Collection.remove()adeleteOne()odeleteMany()
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ónpromiseLibrarydeMongoClienty la exportaciónPromise.setque permite especificar una libreríaPromisepersonalizada.El driver remueve la compatibilidad con el asistente
Collection.mapReduce().El tipo
BulkWriteResultya no tiene la propiedad enumerable públicamenteresult.Se han eliminado los siguientes tipos, opciones y métodos:
BulkResult.lastOp()MétodoopTimepropiedades deBulkResultBulkWriteOptions.keepGoingOpciónWriteConcernError.err()MétodoAddUserOptions.digestPasswordOpciónKerberos
gssapiCanonicalizeHostNameoptionslaveOkse eliminaron las opciones y el método en favor desecondaryOkObjectIDtipo eliminado en favor deObjectIdAsyncIteratorinterfaz eliminada a favor deAsyncGenerator
Versión 4.0 cambios disruptivos
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.
Cursorlos tipos ya no extienden directamenteReadable.No puedes usar una instancia
ChangeStreamcomo iterador después de usarla comoEventEmitter. Tampoco puedes hacer lo contrario—usar una instancia deEventEmittercomo iterador después de haberla usado comoChangeStream.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
maxPoolSizeahora es100.El controlador ya no admite la opción
gssapiServiceNameKerberos. UtiliceauthMechanismProperties.SERVICE_NAMEen su lugar.El driver ya no acepta tipos no booleanos, como
0o1, para opciones booleanas.El tipo
db.collectionya no acepta una función de retorno.El tipo
Dbya no es unEventEmitter. Puedes escuchar cualquier evento directamente desde la instanciaMongoClient.El driver remueve la compatibilidad con el asistente
Collection.group().El driver ya no incluye la API
GridStoreobsoleta.
Para obtener más información sobre estos cambios, consulta el registro de cambios de la v4.0.
Cambios en la compatibilidad de la versión del servidor
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, consulta la Política de soporte para versiones anteriores.
Versión 4.2 Cambios en el soporte de lanzamiento del servidor
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.