Descubra qué hay de nuevo en:
Novedades en 6.21
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_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ón6.20 del driver de Node.js incluye las siguientes funcionalidades:
Ya no genera un error cuando se proporciona la opción
hinten los comandosupdateno reconocidos. Cuando se conecta a MongoDB Server 4.4 o posterior, el driver también admite la opciónhintpara los comandosdeleteyfindAndModifyno reconocidos.Permite acceder al objeto padre
Dbdesde unCollectiony al objeto padreMongoClientdesde unDb.Inutiliza la clase
ServerCapabilities.Desaprueba la propiedad
ReadPreference.minWireVersion.Obsolece las siguientes opciones de
MongoClient:driverInfoadditionalDriverInfometadataextendedMetadata
Inhabilita la opción
CommandOperationOptions.retryWrites. El controlador de Node.js soporta la opciónretryWritessolo a nivel deMongoClienty 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
resumeTokencuando se utiliza el métodotryNext()para recorrer los eventos del flujo de cambio. Las versiones anteriores del controlador no actualizaban elresumeToken, lo que resultaba en un comportamiento inconsistente durante la iteración del flujo de cambios.Permite real watcher reanudar después de que el driver se encuentre con 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ó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-encryptiona 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():limitnoCursorResponsebatchSize
Se asegura de que
findOne()solo pueda recibir un único agrupar de documentos del servidor para evitar comandoskillCursorinnecesarios.Añade soporte para especificar un
secureContextatlsOptions:<provider>en las opcionesautoEncryptionsobre elMongoCliento como una opción en el objeto ``ClientEncryption``. Esto te permite pasartlsCAFileytlsCertificateKeyFilecomo opciones en memoria tanto aMongoClientOptions.autoEncryption.tlsOptionscomo aClientEncryption.Cuando se habilita la autenticación,
MongoClientahora 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 depingal conectar.
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ó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()ClientMetadataClientMetadataOptionsCancellationTokenCommandOperationOptions.noResponse
Estos nodos y tipos serán eliminados en una próxima versión importante del driver.
Agrega un método
appendMetadata()que se puede usar para añadir metadatos de apretón de manos después de construir el objetoMongoClient. 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 objetoMongoClient: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
wallTimea todas las interfaces de eventosChangeStreamexcepto aChangeStreamRefineCollectionShardKeyEventyChangeStreamReshardCollectionDocument. Esta propiedad contiene la fecha y la hora del servidor de la operación de la base de datos.Agrega una propiedad
databaseNamea los eventosCommandSucceededEventyCommandFailedEvent. 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
minPoolSizeestá configurada en0. Esto soluciona un error dondeConnectionPoolno eliminaba conexiones inactivas o caducadas a menos queminPoolSizefuera mayor que0.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.
Novedades en 6.17
La versión6.17 del driver de Node.js incluye las siguientes funcionalidades:
Elimina el soporte para MongoDB Server 4.0.
Actualiza el paquete
bsona 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 paquetebsonen GitHub.Agrega la opción
keepAliveInitialDelayal construir unMongoClient. Esta opción es por defecto120000milisegundos.Vuelve a intentar la autenticación OIDC cuando la autenticación inicial falla debido a un error de token expirado.
Agrega la opción
sortpara las operacionesupdateOne()yreplaceOne(). 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
keyTimeoutMSpara configurar el tiempo de expiración del caché de la DEK. Esta opción se establece por defecto en6000milisegundos y requieremongodb-client-encryptionversión 6.4 o posterior.Instruye las operaciones de actualización para generar un error si el
ignoreUndefinedse establece 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ón6.16 del driver de Node.js incluye las siguientes funcionalidades:
El método
Collection.distinct()ahora admite un parámetro opcionalhintque 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.
Novedades en 6.15
La versión6.15 del driver de Node.js incluye las siguientes funcionalidades:
Agrega soporte para proporcionar credenciales personalizadas de AWS al configurar authentication or encriptación en uso. Debe proporcionar la firma de la función personalizada en la siguiente forma:
() => Promise<AWS.Credentials> También puedes especificar cadenas de proveedores desde el AWS SDK, lo que permite personalizar tus 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 abortara 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
timeoutmscaducaba 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.
Novedades en 6.14
La versión6.14 del driver de Node.js incluye las siguientes funcionalidades:
Añade soporte para la etapa de agregación
$lookupen colecciones cifradas. Debe actualizar su paquetemongodb-client-encryptiona la versión6.3.0 o posterior para utilizar esta funcionalidad.Utiliza la implementación del método
isUint8Array()del controlador para evitar la importación del paqueteutil/types.Revierte la compatibilidad de la versión de
@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ón6.13 del driver de Node.js incluye las siguientes funcionalidades:
Agrega un nuevo registrador estandarizado para habilitar perspectiva sobre las operaciones de base de datos sin necesidad de hacer cambios en el código. Puedes habilitar y configurar el registrador a través de 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
signala 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 reintenta las búsquedas de DNS al resolver
mongodb+srv://de cadenas de conexión.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-OIDCno 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.
Novedades en 6.12
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 sobrezstdv2.0, ver loszstdnotas de versión en GitHub.Actualiza el paquete
bsona 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 paquetebsonen GitHub.El driver rellena el campo
ServerDescription.errorcon 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 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ó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 autenticar desde un entorno Kubernetes, establezca la opción de conexión
authMechanismPropertiesenENVIRONMENT:k8sen su cadena de conexión. Puedes utilizar esta funcionalidad al conectarte a un entorno que ejecute en Amazon Elastic Kubernetes Service, Google Kubernetes motor o Azure Kubernetes Service.El paquete
bsonañade soporte para datos vectoriales binarios. Para aprender más sobre esta funcionalidad, consulte las notas de versión v6.10.0 del paquetebsonen 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 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 comomongodb+srv://mongodb.local.Admite la opción "explain" para recuperar un valor
maxTimeMSpreciso para los comandos CRUD para describir el operation time. Las opciones de explicación para las operaciones de búsqueda y agregación están en desuso.
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
El soporte para MongoDB Server 3.6 está en desuso y será eliminado en una futura versión de driver.
El controlador admite de manera nativa la gestión explícita de recursos para los cursores y los objetos
MongoClient,ClientSessionyChangeStream. Cuando utilices una versión compatible de Node.js, puedes implementar una gestión explícita de recursos utilizando el métodocursor.stream()y la claseGridFSDownloadStream.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
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 usar estas opciones:
const client = new MongoClient(uri, { autoSelectFamily: true, autoSelectFamilyTimeout: 100 }); El constructor
MongoClientacepta la opciónallowPartialTrustChain. Esta opción controla la banderaX509_V_FLAG_PARTIAL_CHAINde OpenSSL.El
ConnectionCheckedOutEventy elConnectionCheckFailedEventahora incluyen una propiedaddurationMS. 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
cryptoCallbacksy 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 paquetemongodb-client-encryption.Para mejorar la seguridad, las opciones que especifican la ruta de generación y los argumentos para
mongocryptddeben ser propiedades propias deautoEncryption.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-encryptionv6.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()ybulkWrite()aceptan entradas deReadonlyArray.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 enerror.result.writeConcernError.code. Esto soluciona un problema en clústeres fragmentados que utilizan versiones de MongoDB Server anteriores a 4.4.La propiedad
LocalKMSProviderConfiguration.keyacepta una instancia deBSONBinaryparaAutoEncryptionOptions.En TypeScript, la clase
BulkOperationBasereporta la propiedad getterlength.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 el arreglo antes de volver a llamar al iterador asíncrono. Este cambio evita los retrasos asociados con la ejecuciónasync/awaity mejora el rendimiento en un 5% en promedio. Esta optimización no se aplica si proporcionas una transformación al métodocursor.map()antes de llamar al métodotoArray().Corrige el uso mixto del método
cursor.next()con la sintaxisfor await.Agrega la opción
enableUtf8Validational deserializar BSON, que se eliminó inadvertidamente en el driver de Node.js versión6.8.Agrega la propiedad
durationMSa la claseConnectionReadyEvent. Esta propiedad representa el tiempo entre el evento de creación de la conexión y cuando se activa elConnectionReadyEvent.
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ó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 Binaryen tiempo de ejecución, pero el compilador de TypeScript solo permitía valores de tipoBufferystring.El error
ReadConcernMajorityNotAvailableYetahora se puede volver a intentar como error de lectura.Ahora puedes asociar un nombre y proporcionar múltiples claves para los proveedores de KMS. Esta funcionalidad requiere
mongodb-client-encryptionv6.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
ClientEncryptioncon 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 entrue, 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 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 las recorre, en lugar de decodificar toda la respuesta BSON cuando se recibe.
La versión de Github para el paquete
mongodbahora 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.
Novedades en 6.7
La versión6.7 del driver de Node.js incluye las siguientes funcionalidades:
Agrega soporte para el mecanismo de autenticación
MONGODB-OIDCcuando se conecta con MongoDB Server v7.0 y versiones posteriores. El driver es compatible con la autenticación por máquina de Azure, autenticación por máquina de GCP, autenticación por función de retorno y autenticación de interacción humana por función de retorno faceta.Soluciona un problema donde configurar el indicador
useBigInt64entruecausaba que la función internacompareTopologyVersiongenerara 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ó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.
Agrega el método
addStage()a la API de agregación fluida. Puedes usar este método para agregar etapas del pipeline de agregación individualmente, como se muestra en el siguiente ejemplo:const documents = await users.aggregate().addStage({ $project: { name: true } }).toArray(); Agrega los campos
causeydependencyNamea la claseMongoMissingDependencyError. Puedes usar estos campos para determinar de manera automatizada si falta un paquete o por qué un paquete no se cargó.Agrega la propiedad
minRoundTripTimea la claseServerDescription. 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 claseTopologyDescription. Aunque puedes utilizar este método para convertir objetosTopologyDescriptiona JSON, recomendamos utilizar el métodoutil.inspect()de Node en su lugar, ya que gestiona correctamente todos los tipos utilizados en JavaScript y el controlador.Agrega soporte para opciones de cursor a los métodos
Collection.indexExists(),Collection.indexes()yCollection.indexInformation()en Typescript.Remueve el soporte para 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 el
ServerDescription.roundTripTimepropiedad 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.$currentDateya no genera un error cuando se pasa a un método compuesto, comofindOneAndUpdate(), en una colección con un esquema limitado.El controlador arroja un
MongoTransactionErrorsólo si se proporciona unReadPreferenceModedistinto deprimaryy luego se intenta realizar un comando que implique una operación de lectura.El tipo de dato 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 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
ClusterTimeya no define el camposignaturecomo obligatorio 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ón6.5 del driver de Node.js incluye las siguientes funcionalidades:
Actualiza las operaciones de escritura masiva para utilizar la clase
pkFactorypara 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
primaryPreferredcuando 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
SRVyTXTen paralelo.Agrega seguimiento a los metadatos del contenedor al ejecutar un cliente en Kubernetes o un entorno de contenedor en el campo
client.env.containerdel documento de apretón de manos.Agrega el documento de error original devuelto por el servidor al campo
errorResponsedel documentoMongoServerError.Desaprueba la interfaz
CloseOptions, que no es utilizada por 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ón6.4 del driver de Node.js incluye las siguientes funcionalidades:
Cuando hay varias instancias
mongosdisponibles, 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
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.Tipifica
countDocumentsusandoFilter<Schema>en lugar deDocument, lo que permite la autocompletación y ayuda a prevenir problemas de tipificación posteriores.Corrige un error de tipo en la opción
$addToSetdel comandobulkWrite. El controlador omite la validación$addToSetsi extiendes tus tipos desdeDocumentoany, o si utilizas propiedades de cualquier tipo.Corrige la duración del latido del evento
ServerHeartbeatSucceededyServerHeartbeatFailedpara 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.
Novedades en 6.3
La versión 6.3 del driver de Node.js incluye las siguientes funcionalidades:
Agrega la opción del cliente
serverMonitoringModepara controlar el comportamiento de la conexión de supervisión entre los nodos en una topología. Esta opción toma un valor deauto(por defecto),pollostream. 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
serverMonitoringModeen una instancia deMongoClientOptionso como una opción de cadena de conexión. El siguiente ejemplo muestra cómo crear un cliente con la opción configurada enstream: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
contentTypeyaliases. Para almacenar el tipo de contenido y los alias de un archivo, añade los camposcontentTypeyaliasesal documentometadata.
Para aprender más sobre este lanzamiento, ver v6.3.0 Release Highlights.
Novedades en 6.2
La versión 6.2 del driver de nodo.js incluye las siguientes funcionalidades:
Actualiza la versión del paquete
bsona 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.insertedIdsde un tipo de error de escritura masiva contenga los valores_idde los documentos insertados con éxito. En versiones anteriores, cuando una operación de escritura masiva rechazaba una inserción, la propiedadresult.insertedIdscontenía los valores_idpara 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 comienzan o terminan con el carácter
.. Este cambio alinea el comportamiento del controlador para la verificación de la base de datos y el nombre de la colección con el del servidor.
Para aprender más sobre este lanzamiento, ver v6.2.0 Release Highlights.
Novedades en 6.1
La versión 6.1 del driver de Node.js incluye las siguientes funcionalidades:
Actualiza la versión del paquete
bsona 6.1.0 para exponer el métodoDecimal128.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 la región cuando te autenticas usando la acción IAM AssumeRoleWithWebIdentity con la autenticación
MONGODB-AWS. Para indicar al controlador que use tus opciones de región, debes configurar ambas variables de entorno siguientes:AWS_STS_REGIONAL_ENDPOINTSAWS_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 tipoChangeStream.
Para aprender más sobre este lanzamiento, ver v6.1.0 Release Highlights.
Novedades en 6.0
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 6.0 del driver de Node.js incluye las siguientes funcionalidades:
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.Eliminación del soporte para la operación
collStats. Usa el operador de agregación $collStats en su lugar.El campo
optionsdel tipoConnectionPoolCreatedEventcontiene solo los siguientes campos, que son las opciones de grupo no por defecto:maxConnectingmaxPoolSizeminPoolSizemaxIdleTimeMSwaitQueueTimeoutMS
El controlador lee asincrónicamente los archivos establecidos en las opciones de conexión
tlsCAFileytlsCertificateKeyFilecuando llamas al métodoMongoClient.connect(), no cuando creas una instancia deMongoClient.Eliminación de las opciones de conexión
keepAliveykeepAliveInitialDelay. El valor dekeepAlivese establece permanentemente entruey el valor dekeepAliveInitialDelayse establece en 300000 milisegundos (300 segundos).Para aprender cómo configurar los parámetros de keepalive a nivel de sistema, consulta ¿Afecta el tiempo de keepalive de TCP a las implementaciones de MongoDB? Entrada de preguntas frecuentes en el manual del Servidor.
Remueve las siguientes opciones para el método
Db.command():willRetryWriteomitReadPreferencewriteConcernexplainreadConcerncollationmaxTimeMScommentretryWritesdbNameauthdbnoResponse
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.
