Conozca las novedades en:
Novedades en 7.1
La versión v7.1 del controlador Node.js incluye las siguientes características:
Añade lógica para
MONGODB-AWSautenticación al controlador, por lo que el paqueteaws4ya no es necesario para usar la autenticaciónMONGODB-AWS. Para obtener más información sobre la autenticaciónMONGODB-AWS, consulte 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
node:processen lugar deglobal.processpara que los empaquetadores y los tiempos de ejecución alternativos puedan suministrar y optimizar la implementación del proceso de manera más consistente.Reemplaza varias API específicas de Node con equivalentes basados en estándares para reducir la cantidad de parches necesarios para ejecutar el controlador fuera de Node.js:
process.arches ahoraos.arch()process.platformes ahoraos.platform()os.endianness()es ahoraBSON.NumberUtilsprocess.hrtime()es ahoraperformance.now()process.nextTick()es ahoraqueueMicrotask()
Mejora el comportamiento de reintento:
Evita la rotación innecesaria del grupo de conexiones cuando la limitación de velocidad de conexión del lado del servidor está habilitada, ya que ya no borra el grupo cuando fallan las conexiones.
Agrega un retroceso exponencial al comportamiento de reintento
withTransaction().Desprioriza los servidores sobrecargados o fallidos durante los reintentos de selección de servidores.
Mejoras en la autenticación de OIDC:
Expande la lista predeterminada
OIDC ALLOWED_HOSTSpara incluir*.mongo.com.Corrige la reautenticación de OIDC cuando
promoteValues: falseestá habilitado.
Corrige el manejo de preferencias de lectura para agregaciones que utilizan
$mergey$out.Se desestima
RenameCollectionOptions.new_collectionpara su eliminación futura
Para obtener más información sobre esta versión, consulte las notas de versión v7.1.0 en GitHub.
Novedades en 7.0
Advertencia
Cambios importantes en v7.0
Esta versión del controlador presenta cambios importantes. Para obtener una lista de estos cambios, consulte la 7.0 sección "Cambios importantes de la versión " en la guía de actualización.
La versión v7.0 del controlador Node.js incluye las siguientes características:
Actualiza la versión mínima de Node.js a v20.19.0.
Se actualizan
bsonlasmongodb-connection-string-urlversiones y7.0.0a. Para obtener más información sobre la funcionalidad actualizada de BSON para7.0.0 la versión, consulte los cambios descritos en las notas de la versión de BSON v.7Actualiza la matriz de dependencia de pares para los siguientes paquetes a los siguientes rangos permitidos:
@aws-sdk/credential-providers: ^3.806.0@mongodb-js/zstd: ^2.0.0gcp-metadata: ^7.0.1socks: ^2.8.6
Para ver la tabla de compatibilidad de dependencias completa, consulte la tabla de compatibilidad de componentes de Node.js en la página Tablas de compatibilidad de controladores.
Mejora la consistencia
MongoClient.connect()en todos los entornos al permitir que la funciónconnect()ejecute un protocolo de enlace independientemente de si las credenciales están definidas.Actualiza
MongoClient.close()para intentar limpiar 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 las llamadas
socket.writeen un bloque try/catch para garantizar 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.
Agrega las siguientes mejoras en el manejo de errores:
Cuando se elimina una colección, esta devuelve
falseen lugar de generar erroresnamespace not found.La agregación con
writeConcernyexplaingenera unMongoServerErroren 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.
Novedades en 6.21
La versión v6.21 del controlador Node.js incluye las siguientes características:
Deja obsoletas las siguientes propiedades e interfaces, que se eliminarán en v7.0:
MongoCredentials.authMechanismProperties.AWS_SESSION_TOKENCommandOptions.noResponseConnectionOptions.cancellationTokenCursorStreamOptions
Para obtener más información sobre esta versión, consulte las notas de versión v6.21.0 en GitHub.
Novedades en 6.20
La versión v6.20 del controlador Node.js incluye las siguientes características:
Ya no se genera un error al usar la opción
hintpara comandosupdateno confirmados. Al conectarse a MongoDB Server 4.4 o posterior, el controlador también admite la opciónhintpara comandosdeleteyfindAndModifyno confirmados.Le permite acceder al objeto padre
Dbdesde unCollectiony al objeto padreMongoClientdesde unDb.Deja obsoleta la clase
ServerCapabilities.Deja obsoleta la propiedad
ReadPreference.minWireVersion.Deja obsoletas las siguientes
MongoClientopciones:driverInfoadditionalDriverInfometadataextendedMetadata
Se desestima la opción
CommandOperationOptions.retryWrites. El controlador de Node.js solo admite la opciónretryWritesen el nivelMongoClienty ya la ignoraba al configurarse en el 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 compilación en el código.Actualiza el
resumeTokenal usar el métodotryNext()para iterar eventos del flujo de cambios. Las versiones anteriores del controlador no actualizaban elresumeToken, lo que generaba 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.
Novedades en 6.19
La versión v6.19 del controlador Node.js incluye las siguientes características:
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-encryptiona la v6.5.0 o posterior para utilizar esta funcionalidad.Importante
La búsqueda de subcadenas, prefijos y sufijos se encuentra en versión preliminar y debe usarse únicamente para cargas de trabajo experimentales.
Deja obsoletas las siguientes opciones para las operaciones
findOne():limitnoCursorResponsebatchSize
Asegura que
findOne()solo pueda recibir un único lote de documentos del servidor para evitar comandoskillCursorinnecesarios.Se añade compatibilidad para especificar de
secureContextatlsOptions:<provider>en las opcionesautoEncryptiondel objetoMongoCliento como opción del objeto ``ClientEncryption``. Esto permite pasartlsCAFileytlsCertificateKeyFilecomo opciones en memoria aMongoClientOptions.autoEncryption.tlsOptionsyClientEncryption.Cuando la autenticación está habilitada, el
MongoClientverifica una conexión fuera del pool de conexiones para forzar el protocolo de enlace inicial y la vuelve a registrar al conectarse. Esto evita comandospinginnecesarios al conectarse.
Para obtener más información sobre esta versión, consulte las notas de versión v6.19.0 en GitHub.
Novedades en 6.18
La versión v6.18 del controlador Node.js incluye las siguientes características:
Deja obsoletos los siguientes miembros y tipos:
Transaction.options()Transaction.recoveryToken()Transaction.isPinned()Transaction.isStarting()Transaction.isActive()Transaction.isCommitted()ClientMetadataClientMetadataOptionsCancellationTokenCommandOperationOptions.noResponse
Estos miembros y tipos se eliminarán en una próxima versión principal del controlador.
Añade un método
appendMetadata()que permite añadir metadatos de protocolo de enlace después de construir el objetoMongoClient. El siguiente ejemplo muestra cómo usar este método para añadir el nombre de la biblioteca, la versión y la plataforma a un objetoMongoClient:import { MongoClient } from 'mongodb'; const client = new MongoClient(process.env.MONGODB_URI); client.appendMetadata({ name: 'my library', version: '1.0', platform: 'NodeJS' }); Añade una propiedad
wallTimea todas las interfaces de eventoChangeStream, exceptoChangeStreamRefineCollectionShardKeyEventyChangeStreamReshardCollectionDocument. Esta propiedad contiene la fecha y hora del servidor en que se realizó la operación de la base de datos.Añade una propiedad
databaseNamea los eventosCommandSucceededEventyCommandFailedEvent. Esta propiedad contiene el nombre de la base de datos en la que la aplicación ejecutó el comando.Cierra las conexiones inactivas durante periodos de inactividad, incluso cuando el valor
minPoolSizeestá establecido en0. Esto corrige un error por el cual el valorConnectionPoolno eliminaba las conexiones inactivas o fallidas a menos que el valorminPoolSizefuera mayor que0.El controlador asigna sesiones de forma diferida al iterar un cursor. En versiones anteriores, el controlador asignaba sesiones cada vez que se creaba un cursor, independientemente de si la aplicación lo iteraba.
Para obtener más información sobre esta versión, consulte las notas de versión v6.18.0 en GitHub.
Novedades en 6.17
La versión v6.17 del controlador Node.js incluye las siguientes características:
Elimina la compatibilidad con MongoDB Server 4.0.
Actualiza el
bsonpaquete a la6.10.4 versión v. Para obtener más información sobre esta versión, consulte las 6.10.4 notas de la versión v delbsonpaquete en GitHub.Añade la opción
keepAliveInitialDelayal construir unMongoClient. El valor predeterminado de esta opción es120000milisegundos.Vuelve a intentar la autenticación OIDC cuando la autenticación inicial falla debido a un error de token vencido.
Añade la opción
sortpara las operacionesupdateOne()yreplaceOne(). Esta opción requiere MongoDB Server 8.0 o posterior.Indica al método
MongoClient.close()que cierre las conexiones abiertas en uso.Añade una opción de cifrado
keyTimeoutMSpara configurar el tiempo de expiración de la caché DEK. Esta opción tiene un valor predeterminado de6000milisegundos y requiere la versión 6.4 o posterior demongodb-client-encryption.Indica a las operaciones de actualización que generen un error si
ignoreUndefinedestá establecido entruey 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.
Novedades en 6.16
La versión v6.16 del controlador Node.js incluye las siguientes características:
El método
Collection.distinct()ahora admite un parámetrohintopcional que permite especificar el índice que se usará para el comando. Esta funcionalidad requiere MongoDB Server 7.1 o posterior.Corrige un error con el procesamiento de múltiples mensajes dentro de un fragmento de datos de red que podría provocar que los tiempos de procesamiento se ralenticen.
Corrige un error en el que
FindCursor.rewind()arrojaba errores en ciertos casos.Se desestima la compatibilidad con MongoDB Server 4.0. Esta compatibilidad se eliminará por completo 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.
Novedades en 6.15
La versión v6.15 del controlador Node.js incluye las siguientes características:
Se añade compatibilidad para proporcionar credenciales personalizadas de AWS al configurar la autenticación o el cifrado en uso. Debe proporcionar la firma de la función personalizada con el siguiente formato:
() => 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
MongoClientconfigurado paraOIDCcon unAbortSignalse cancelara en el cursor cuando el cliente se volvía a autenticar.Corrige un error que causaba que se lanzara un rechazo no controlado cuando un
timeoutmsexpiraba antes de que una operación llegara al proceso de selección del servidor.Se corrige un error causado por el cierre de un flujo de cambios al procesar un evento de cambio. Este error provocaba un posible error al rechazar una promesa interna que representaba el "próximo" cambio.
Para obtener más información sobre esta versión, consulte las notas de versión v6.15.0 en GitHub.
Novedades en 6.14
La versión v6.14 del controlador Node.js incluye las siguientes características:
Añade compatibilidad con la
$lookupetapa de agregación en colecciones cifradas. Debe actualizar sumongodb-client-encryptionpaquete a la versión 70006.3.0 o posterior para usar esta función.Utiliza la implementación del controlador del método
isUint8Array()para evitar la importación del paqueteutil/types.Revierte la compatibilidad de la versión
@aws-sdk/credential-providersa v3.188.0.
Para obtener más información sobre esta versión, consulte las notas de versión v6.14.0 en GitHub.
Novedades en 6.13
La versión v6.13 del controlador Node.js incluye las siguientes características:
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 obtener más información sobre el registro, consulte la guía de registro.
Mejora el rendimiento de la supervisión de comandos eliminando copias profundas de los objetos de comando y respuesta. Modificar los valores de comando y respuesta podría provocar un comportamiento indefinido.
Añade una función experimental de señal de interrupción. Puedes pasar el comando
signala los siguientes métodos para interrumpir su ejecución cuando se activa la señal:collection.find()collection.findOne()collection.aggregate()collection.countDocuments()db.listCollections()db.command()
Al abortar una señal se cierra una conexión, lo que podría provocar un restablecimiento innecesario de la misma.
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
MongoClient.close()de forma segura simultáneamente, pero no recomendamos hacerlo si es posible evitarlo.Corrige un problema que causaba que la autenticación
MONGODB-OIDCno se volviera a autenticar correctamente si el protocolo de enlace incluye autenticación especulativa.
Para obtener más información sobre esta versión, consulte las notas de versión v6.13.0 en GitHub.
Novedades en 6.12
La versión v6.12 del controlador Node.js incluye las siguientes características:
Añade compatibilidad con2.0 la
zstdversión 7600 del algoritmo de compresión. Para obtener más información sobrezstd2.0lazstdversión 8000 de, consulta las notas de la versión en GitHub.Actualiza el
bsonpaquete a la6.10.1 versión v. Para obtener más información sobre esta versión, consulte las 6.10.1 notas de la versión v delbsonpaquete en GitHub.El controlador rellena el campo
ServerDescription.errorcon un tipo de error y un mensaje más específicos cuando marca como obsoleto un miembro del conjunto de réplicas principal.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 encapsula el error socks5 en un
MongoNetworkError. Esto evita que el controlador encapsula unMongoNetworkErroren otroMongoNetworkError.
Para obtener más información sobre esta versión, consulte las notas de versión v6.12.0 en GitHub.
Novedades en 6.11
La versión v6.11 del controlador Node.js incluye las siguientes características:
Agrega soporte para Node.js v22.
Añade la función Tiempo de espera de operaciones del lado del cliente (CSOT). Puede usar CSOT para aplicar un tiempo de espera único a todos los pasos necesarios para completar una operación del lado del servidor, incluyendo la selección del servidor, la verificación de la conexión, la serialización y la ejecución del servidor. Para obtener más información, consulte la guía "Limitar el tiempo de ejecución del servidor".
Nota
Característica experimental
La función CSOT es experimental y podría cambiar en futuras versiones de controladores.
Añade compatibilidad con la autenticación OIDC para entornos de Kubernetes. Para obtener más información sobre esta función, consulte la guía del mecanismo de autenticación OIDC.
Para usar OIDC para autenticarse desde un entorno de Kubernetes, configure la opción de conexión
authMechanismPropertiescomoENVIRONMENT:k8sen 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
bsonpaquete 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 delbsonpaquete en GitHub.El controlador emite
ConnectionClosedEventsdespués dePoolClearedEvents.
Para obtener más información sobre esta versión, consulte las notas de versión v6.11.0 en GitHub.
Novedades en 6.10
La versión v6.10 del controlador Node.js es la primera versión oficial que admite todas las características de MongoDB Server 8.0 e incluye las siguientes mejoras y correcciones:
Elimina la compatibilidad con 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 comomongodb+srv://mongodb.local.Se admite la opción de explicación para recuperar un valor
maxTimeMSpreciso 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.
Novedades en 6.9
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,ClientSessionyChangeStream. Al usar una versión compatible de Node.js, puede implementar la gestión explícita de recursos mediante el métodocursor.stream()y la claseGridFSDownloadStream.Para aprender a usar la gestión explícita de recursos, consulte 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, consulte la propuesta de gestión explícita de recursos de ECMAScript en el39 sitio web de TC.
Si utilizas Node.js 18.13 o una versión posterior, puedes pasar las opciones
autoSelectFamilyyautoSelectFamilyTimeoutal constructorMongoClient. Cuando la opciónautoSelectFamilyestá entrue, el controlador selecciona automáticamente entre una conexión IPv4 o IPv6. La opciónautoSelectFamilyTimeoutespecifica el tiempo de espera, en milisegundos, para que el controlador seleccione la familia de conexiones.El siguiente ejemplo de código muestra cómo utilizar estas opciones:
const client = new MongoClient(uri, { autoSelectFamily: true, autoSelectFamilyTimeout: 100 }); El constructor
MongoClientacepta la opciónallowPartialTrustChain. Esta opción controla el indicadorX509_V_FLAG_PARTIAL_CHAINde OpenSSL.Los valores
ConnectionCheckedOutEventyConnectionCheckFailedEventahora incluyen la propiedaddurationMS. Esta propiedad indica el tiempo transcurrido entre el inicio y el final de una operación de verificación de conexión.Si usa Node.js 18 o posterior, el controlador ignora la opción
cryptoCallbacksy utiliza devoluciones de llamada definidas en C++, lo que mejora significativamente el rendimiento del cifrado. Este cambio está disponible en la versión v6.1.0 del paquetemongodb-client-encryption.Para mejorar la seguridad, las opciones que especifican la ruta de inicio y los argumentos para
mongocryptddeben ser propiedades propiasautoEncryption.extraOptionsde. Este cambio ayuda a prevenir errores globales de contaminación de prototipos relacionados con estas opciones. Para más información sobre las propiedades propias, consulte Object.hasOwn() en MDN.Añade compatibilidad oficial con consultas de rango de Cifrado Consultable (QE). Para usar esta función, su aplicación debe usar
mongodb-client-encryptionv6.1.0 o posterior y conectarse a MongoDB Server 8.0 o posterior. Para obtener más información sobre las consultas de rango de QE,consulte Cifrado Consultable en el manual de MongoDB Server.Los métodos
insertMany()ybulkWrite()aceptanReadonlyArrayentradas.El controlador reintenta las escrituras basándose en el código de nivel superior, que se encuentra en
error.code, en lugar del código anidado enerror.result.writeConcernError.code. Esto soluciona un problema en clústeres fragmentados que ejecutan versiones de MongoDB Server anteriores a 4.4.La propiedad
LocalKMSProviderConfiguration.keyacepta una instancia deBSONBinaryparaAutoEncryptionOptions.En TypeScript, la clase
BulkOperationBaseinforma la propiedad captadoralength.El tipo
MongoWriteConcernErrorahora conserva el código original de nivel superior enMongoWriteConcernError.code.El método
cursor.toArray()vacía el lote actual de documentos en la matriz antes de volver a llamar al iterador asíncrono. Este cambio evita los retrasos asociados con la ejecución deasync/awaity mejora el rendimiento hasta en un 5% de media. Esta optimización no se aplica si se proporciona una transformación al métodocursor.map()antes de llamar al métodotoArray().Corrige el uso mixto del método
cursor.next()con sintaxisfor await.Agrega la opción
enableUtf8Validational deserializar BSON, que se eliminó inadvertidamente en el controlador Node.js v6.8.Añade la propiedad
durationMSa la claseConnectionReadyEvent. Esta propiedad representa el tiempo transcurrido entre la creación de la conexión y la activación deConnectionReadyEvent.
Para obtener más información sobre esta versión, consulte las notas de versión v6.9.0 en GitHub.
Novedades en 6.8
La versión v6.8 del controlador Node.js incluye las siguientes características:
Corrige un error en el que un proveedor KMS local aceptaba una instancia
BSON Binaryen tiempo de ejecución, pero el compilador TypeScript solo permitía valores de tipoBufferystring.El error
ReadConcernMajorityNotAvailableYetahora es un error de lectura que se puede volver a intentar.Ahora puede asociar un nombre a proveedores KMS y proporcionarles varias claves. Esta función requiere la versión
mongodb-client-encryptionv6.0.1 o posterior. No puede usar proveedores KMS con nombre si su aplicación utiliza la función de actualización automática de proveedores KMS.El siguiente ejemplo de código muestra cómo configurar un objeto
ClientEncryptioncon múltiples claves de AWS:const clientEncryption = new ClientEncryption(keyVaultClient, { 'aws:key1': { accessKeyId: ..., secretAccessKey: ... }, 'aws:key2': { accessKeyId: ..., secretAccessKey: ... }, clientEncryption.createDataKey('aws:key-1', { ... }); Al crear una clave de datos KMIP, ahora puede especificar la opción
delegated. Si esta opción se establece entrue, el proveedor de KMIP realiza el cifrado y descifrado de la clave de datos localmente, garantizando así que nunca salga del servidor KMIP. Esta función requieremongodb-client-encryptionv6.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 itera sobre ellas, en lugar de decodificar la respuesta BSON completa cuando se recibe.
La versión de GitHub del
mongodbpaquete ahora contiene un archivo de firmamongodb-X.Y.Z.tgz.sigindependiente,, para el paquete NPM. Este cambio se aplica a todas las versiones principales y parches de las 5 versiones.x 6 y.x del controlador. Para verificar la firma del paquete, siga las instrucciones de la sección "Integridad de la versió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.
Novedades en 6.7
La versión v6.7 del controlador Node.js incluye las siguientes características:
Añade compatibilidad con el mecanismo de autenticación
MONGODB-OIDCal 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.Corrige un problema en el que al configurar el indicador
useBigInt64entruela función internacompareTopologyVersiongeneraba un error.
Para obtener más información sobre esta versión, consulte las notas de versión v6.7.0 en GitHub.
Novedades en 6.6
La versión v6.6 del controlador Node.js incluye las siguientes características:
Actualizaciones para usar BSON.6.7.0 Para obtener más información sobre las nuevas funciones de BSON, consulte las notas de la versión de BSON,6.5.0 BSON,,6 60y BSON,,.670
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(); Añade los campos
causeydependencyNamea la claseMongoMissingDependencyError. Puedes usarlos para determinar programáticamente si falta un paquete o por qué no se cargó.Añade la propiedad
minRoundTripTimea la claseServerDescription. Esta propiedad contiene el tiempo mínimo de ida y vuelta durante los últimos 10 latidos.Añade el método
toJSON()a la claseTopologyDescription. Aunque puede usar este método para convertir objetosTopologyDescriptionen JSON, recomendamos usar el métodoutil.inspect()de Node, 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()yCollection.indexInformation()en Typescript.Elimina la compatibilidad con las opciones
readConcernywriteConcerndel métodoCollection.listSearchIndexes().listSearchIndexes()es un método específico de Atlas y los índices de búsqueda de Atlas no admiten estas opciones.Redefine la propiedad
ServerDescription.roundTripTimecomo una media móvil. Anteriormente, era una media ponderada de la duración del latido observado más recientemente y la duración anterior.Puede 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.$currentDateya no genera un error cuando se pasa a un método compuesto, comofindOneAndUpdate(), en una colección con un esquema limitado.El controlador lanza un
MongoTransactionErrorsolo si proporciona unReadPreferenceModedistinto deprimaryy luego intenta ejecutar un comando que implica una operación de lectura.El tipo de datos de la propiedad
TopologyDescription.erroresMongoError.El método
Collection.indexExists()ya no admite la opciónfull.Los métodos
Collection.indexInformation(),Collection.indexes()yDb.indexInformation()tienen un tipo de retorno deIndexDescriptionCompact | IndexDescriptionInfo[]en TypeScript.Al recuperar credenciales de AWS KMS (sistema de administración de claves), el controlador ya no genera un error cuando recibe una clave de acceso que incluye una marca de tiempo de vencimiento.
La interfaz
ClusterTimeya no define el camposignaturecomo 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.
Novedades en 6.5
La versión v6.5 del controlador Node.js incluye las siguientes características:
Actualiza las operaciones de escritura masiva para utilizar la clase
pkFactorypara la generación de ID de documento.
Advertencia
Si anteriormente especificó una instancia de pkFactory para manejar escrituras masivas, los campos _id de los documentos insertados mediante escrituras masivas pueden ser inconsistentes con el comportamiento en esta versión.
Corrige la preferencia de lectura que se envía con operaciones de lectura a
primaryPreferredcuando el controlador está conectado a un nodo secundario en el conjunto de réplicas.Corrige una pérdida 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
SRVyTXTen paralelo.Agrega seguimiento a los metadatos del contenedor cuando se ejecuta un cliente en Kubernetes o un entorno de contenedor en el campo
client.env.containerdel documento de protocolo de enlace.Agrega el documento de error original devuelto por el servidor al campo
errorResponsedel documentoMongoServerError.Desaprueba la interfaz
CloseOptionsque 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.
Novedades en 6.4
La versión v6.4 del controlador Node.js incluye las siguientes características:
Cuando hay varias instancias
mongosdisponibles, se utilizan diferentes servidores para los intentos de lectura y escritura.Almacena en caché las credenciales de AWS en el nivel del cliente, en lugar de para cada autenticación.
Actualizaciones para usar BSON.6.4.0 Para obtener más información sobre las nuevas funciones de BSON, consulte las notas de la versión de BSON 6.3.0 y BSON...640
Las operaciones de lectura que generan un error
ExceededTimeLimitse vuelven a intentar.Corrige un problema de solicitud relacionado con los sockets TLS y los proveedores KMS.
Corrige el relleno base64 en el comando
saslContinuepara permitir la autenticación de mongosh.Los tipos
countDocumentsutilizanFilter<Schema>en lugar deDocument, lo que permite el autocompletado y ayuda a evitar problemas de tipificación posteriores.Corrige un error de tipo en la opción
$addToSetdel comandobulkWrite. El controlador omite la validación$addToSetsi extiende los tipos deDocumentoany, o si utiliza propiedades de cualquier tipo.Corrige la duración del latido del evento
ServerHeartbeatSucceededyServerHeartbeatFailedpara que no incluya el tiempo de creación del socket.Emite errores de forma apropiada desde los flujos de transformación del cursor, en lugar de absorberlos.
Hace que los tokens de sesión de AWS sean opcionales cuando se proporcionan un nombre de usuario y una contraseña, y permite que AWS SDK maneje 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.
Novedades en 6.3
La versión v6.3 del controlador Node.js incluye las siguientes características:
Añade la
serverMonitoringModeopción de cliente para controlar el comportamiento de la conexión de monitorización entre los nodos de una topología. Esta opción toma un valor deauto(predeterminado),pollstreamo. Para obtener más información, consulte la entrada sobre esta opción en la guía "Especificar opciones de conexión".Puede configurar la opción
serverMonitoringModeen una instanciaMongoClientOptionso como una opción de cadena de conexión. El siguiente ejemplo muestra cómo crear un cliente con la opciónstream:new MongoClient('<connection string>', { serverMonitoringMode: 'stream' }); Corrige una fuga de conexión cuando se configura la opción de cliente
serverApi.Depreca las opciones de GridFS
contentTypeyaliases. Para almacenar el tipo de contenido y los alias de un archivo, añade los camposcontentTypeyaliasesal documentometadata.
Para obtener más información sobre esta versión, consulte los aspectos destacados de la versión v.6.3.0
Novedades en 6.2
La versión v6.2 del controlador Node.js incluye las siguientes características:
Actualiza la versión del paquete
bsona 6.2.0 para incluir la visualización en color de los tipos, como se muestra en la siguiente imagen:![Una captura de pantalla de la terminal que muestra la impresión en color.]()
Para obtener más información, consulte las notas de la versión de bson v.6.2.0
Garantiza que la propiedad
result.insertedIdsde un tipo de error de escritura masiva contenga los valores_idde los documentos insertados correctamente. En versiones anteriores, cuando una operación de escritura masiva rechazaba una operación de inserción, la propiedadresult.insertedIdscontenía los valores_idde 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 obtener más información sobre esta versión, consulte los aspectos destacados de la versión v.6.2.0
Novedades en 6.1
La versión v6.1 del controlador Node.js incluye las siguientes características:
Se actualiza la
bsonversión del paquete a 6.1.0 para exponer elDecimal128.fromStringWithRounding()método. Para obtener más información, consulte las notas de la versión de bson v..6.10Detecta variables de entorno para la configuración de región al autenticarse mediante la acción AssumeRoleWithWebIdentity de IAM con
MONGODB-AWSautenticación. Para indicar al controlador que utilice sus opciones de región, debe configurar las dos siguientes variables de entorno:AWS_STS_REGIONAL_ENDPOINTSAWS_REGION
Para saber cómo configurar la configuración de la región al usar el mecanismo de autenticación
MONGODB-AWS, consulte la Web Identity Token pestaña en la guía del mecanismo de autenticación de AWS IAM.Corrige un problema de pérdida de memoria causado por llamadas recursivas al método
next()del tipoChangeStream.
Para obtener más información sobre esta versión, consulte los aspectos destacados de la versión v.6.1.0
Novedades en 6.0
Advertencia
Cambios importantes en v6.0
Esta versión del controlador presenta cambios importantes. Para obtener una lista de estos cambios, consulte la 6.0 sección "Cambios importantes de la versión " en la guía de actualización.
La versión v6.0 del controlador Node.js incluye las siguientes características:
Importante
Aviso de desuso
Todas las opciones con prefijo sslen el tipo MongoClientOptions están obsoletas. Además, la opción tlsCertificateFile también está obsoleta.
En su lugar, debe almacenar sus certificados en un SecureContext objeto o configurar tlslas opciones con el prefijo en su MongoClientOptions instancia. Para obtener más información,consulte Habilitar TLS en una conexión.
Se ha eliminado la compatibilidad con el
addUser()comando auxiliar. En su lugar, utilice el comando createUser de MongoDB Shell.Se ha eliminado la compatibilidad con la
collStatsoperación. En su lugar, utilice el operador de agregación $collStats.El campo
optionsdel tipoConnectionPoolCreatedEventcontiene solo los siguientes campos, que son las opciones de grupo no predeterminadas:maxConnectingmaxPoolSizeminPoolSizemaxIdleTimeMSwaitQueueTimeoutMS
El controlador lee de forma asincrónica los archivos configurados en las opciones de conexión
tlsCAFileytlsCertificateKeyFilecuando llama al métodoMongoClient.connect(), no cuando crea una instanciaMongoClient.Se eliminaron las opciones de conexión
keepAliveykeepAliveInitialDelay. El valor dekeepAlivese establece permanentemente entruey el dekeepAliveInitialDelayen 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.
Elimina las siguientes opciones para el método
Db.command():willRetryWriteomitReadPreferencewriteConcernexplainreadConcerncollationmaxTimeMScommentretryWritesdbNameauthdbnoResponse
Aunque no se pueden pasar estas opciones al
Db.command()método, sí se pueden configurar en el documento de comandos. Para obtener más información, consulte la sección "Opciones de comando" de la guía "Ejecutar un comando de base de datos".
Para obtener más información sobre esta versión, consulte los aspectos destacados de la versión v.6.0.0
