Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Notas de versión

Tip

Notas de versión

Para obtener más información sobre los cambios y actualizaciones entre versiones, puedes leer el notas de versión publicadas con el código fuente del driver.

Descubra qué hay de nuevo en:

Esta actualización incluye las siguientes mejoras y correcciones:

  • Se desaprueba el soporte para MongoDB Server 4.2. La versión mínima requerida del servidor en futuras versiones será MongoDB Server 4.4 o posterior.

  • Agrega soporte para gestión inteligente de carga de trabajo (IVM) de MongoDB. Ahora el driver Go gestiona de manera eficiente los escenarios de bloqueo de escritura y optimiza el establecimiento de conexiones durante condiciones de alta carga para mantener la disponibilidad de la aplicación.

  • Introduce dos métodos de ClientOptions:

    • SetAutoEncryptionOptions()Especifica el número máximo de veces que

    El driver debe reintentar las operaciones que fallen debido a un error de sobrecarga del servidor.

    • SetAutoEncryptionOptionsFromClient(): especifica si el driver debe

    Habilitar la redirección de sobrecarga para las operaciones que fallen debido a un error de sobrecarga del lado del servidor.

    También puede configurar estas opciones utilizando las opciones URI maxAdaptive Retires y enableOverloadRetargeting. Para obtener más información sobre estas opciones y cómo configurarlas, consultar Personalizar la configuración del clúster.

Para obtener información sobre los cambios en esta versión, consulta las notas de versión v2.6 en GitHub.

Esta versión incluye las siguientes correcciones:

  • Corrige dos puntos extremos de deserialización BSON.

Para obtener más información sobre los cambios en esta versión, consulta las notas de versión v2.5.1 en GitHub.

Esta actualización incluye las siguientes mejoras y correcciones:

  • Agrega una vista previa del soporte CRUD para los índices Queryable Encryption (cifrado consultable) de prefijo, sufijo y subcadena. Estas funcionalidades son inestables y su seguridad no está garantizada hasta que se publique como Disponibilidad General (GA). La versión GA de estas funcionalidades puede no ser compatible con versiones anteriores de la versión preliminar.

  • Agrega los métodos AsFloat64() y AsFloat64OK() a bson.RawValue.

  • Agrega el método DefaultDocumentMap() a bson.Decoder.

  • Agrega el método ErrorCodes() para analizar los códigos de error del servidor a partir de un error arbitrario de Go.

  • Expone atClusterTime en sesiones de snapshot.

  • Corrige varios errores, incluyendo una posible lectura fuera de los límites del heap en el manejo de errores GSSAPI.

Para obtener más información sobre los cambios en esta versión, consulta las v2.5 notas de versión en GitHub.

Esta versión incluye las siguientes correcciones:

  • Soluciona una pérdida de recursos en el monitor de tiempo de ida y vuelta (RTT).

  • Agrega registro de comandos para operaciones de transacciones.

Para obtener más información sobre los cambios en esta versión, consulta las notas de versión v2.4.4 en GitHub.

Esta versión incluye las siguientes correcciones:

  • Añade manejo para un parámetro options vacío en el SearchIndexModel

Importante

cambio disruptivo

La versión v2.4 del controlador Go contiene cambios disruptivos. Para obtener más información, consulta los cambios disruptivos de la versión 2.4.

Esta actualización incluye las siguientes mejoras y correcciones:

  • Agrega un nuevo método Client.AppendDriverInfo() que añade información a los metadatos del controlador enviados durante los posteriores apretones de manos de conexión.

  • El controlador ya no envía $clusterTime con comandos de latido, y los comandos de latido ya no analizan $clusterTime de las respuestas.

  • Renombra el archivo interno internal/decinal123/decinal123.go a internal/decimal123/decimal123.go para corregir un error tipográfico en el nombre del paquete.

Para obtener más información sobre los cambios en esta versión, consulta las v2.4 notas de versión en GitHub.

Importante

La versión v2.3 del driver Go es la última versión que admite MongoDB 4.0. La versión del driver Go v2.4 requerirá MongoDB 4.2 o una versión posterior. La versión mínima de Go para la versión del controlador de Go v2.3 es Go 1.19.

Esta actualización incluye las siguientes mejoras y correcciones:

  • Corrige un problema en el que las llamadas a cursor.Next() con un valor maxAwaitTimeMS mayor o igual al tiempo de espera de la operación resultan en tiempos de espera de socket. El driver ahora acorta estas llamadas para evitar errores de tiempo de espera.

  • Corrige un problema por el que Element.StringN() no truncaba las cadenas como se esperaba.

  • Mejora el rendimiento de bson.Unmarshal().

Para obtener más información sobre los cambios en esta versión, consulta las v2.3 notas de versión en GitHub.

Importante

cambio disruptivo

La versión v2.2 del controlador Go contiene cambios disruptivos. Para obtener más información, consulta los cambios disruptivos de la versión 2.2.

Esta actualización incluye las siguientes mejoras y correcciones:

  • Agrega la opción BSON OmitEmpty para evitar globalmente que los valores vacíos sean serializados. Para obtener más información sobre cómo configurar la OmitEmpty bandera global, consulta el ejemplo en la sección Opciones BSON de la guía BSON.

  • Añade soporte para la autenticación OIDC de Kubernetes. Para obtener más información sobre cómo configurar la autenticación de MongoDB para un clúster de Kubernetes, consulta la sección Kubernetes OIDC de la guía Mechanismismos de autenticación de empresa.

  • Añade soporte para configurar la vida útil de la caché de la llave de cifrado de datos (DEK). Para obtener más información sobre la gestión de DEK, consulta la Guía de gestión de llave de cifrado en el manual de MongoDB Server.

  • Agrega soporte para las funciones error.Is y error.As para mejorar la gestión de errores. Para obtener más información, consulte la documentación de la API de Go error.Is y error.As.

Para obtener más información sobre los cambios en esta versión, consulta las v2.2 notas de versión en GitHub.

La versión de driver Go 2.1 incluye las siguientes mejoras y correcciones:

  • Presenta el método Client.BulkWrite, que permite a los clientes realizar múltiples operaciones de inserción, actualización y borrado en varias bases de datos y colecciones con una sola solicitud. Para obtener más información, consulta la guía Operaciones masivas.

  • Introduce el tipo bson.Vector para facilitar y hacer más eficiente la inserción y consulta de datos vectoriales usando MongoDB Vector Search. Para ver un ejemplo que utilice el tipo bson.Vector, consulte la guía MongoDB Vector Search.

  • Extiende la interfaz ServerError para incluir ErrorCodes, que devuelve una lista de códigos de error deduplicados devueltos por el servidor durante la ejecución de operaciones.

  • Agrega la opción sort a Opciones de actualización y Opciones de reemplazo para operaciones autónomas de actualización y reemplazo y en operaciones masivas.

Para obtener más información sobre los cambios en esta versión, consulta las v2.1 notas de versión en GitHub.

La versión de driver 2.0 Go soporta autenticación OpenID Connect (OIDC), proporciona una experiencia de tiempo de espera de operaciones del lado del cliente (CSOT) más fluida e implementa código Go más claro y idiomático agilizando APIs, mejorando las descripciones de errores y simplificando la estructura del paquete del driver.

Puedes aprender más sobre estos cambios en esta sección o consultando la v2.0 Guía de Migración en el código fuente del controlador Go en GitHub.

Importante

cambio disruptivo

La versión v2.0 del controlador Go contiene cambios disruptivos. Para obtener más información, consulta los cambios disruptivos de la versión 2.0.

Esta actualización incluye las siguientes mejoras y correcciones:

  • Soporte de documentación para la autenticación OpenID Connect (OIDC). Para obtener más información, consulte la Guía del Mecanismo de Autenticación OIDC.

  • Puedes acceder a la API de GridFS desde el paquete mongo. En versiones anteriores, podías acceder a las funciones de GridFS desde el paquete separado gridfs, pero ahora esta funcionalidad está integrada en el paquete principal del controlador mongo. Para obtener más información, consulta la guía GridFS.

  • El campo Comment en cualquier estructura de opciones toma un valor del tipo any en lugar del tipo string. Para configurar este campo, se puede usar el método SetComment() y pasar un parámetro de tipo any.

  • Actualizaciones en los documentos de eventos de supervisión:

    • Los structs CommandStartedEvent y CommandFinishedEvent tienen un único campo ServerConnectionID del tipo int64 para capturar el ID de conexión.

    • El campo ConnectionID de la estructura PoolEvent toma un valor de tipo int64 en lugar de uint64.

    Para ver documentos de eventos de ejemplo, consulta las guías de Monitoreo de eventos de la aplicación.

  • La interfaz Session se convierte en una struct. Consulta la Guía de transacciones para obtener más información.

  • El método Distinct() devuelve una estructura que puede decodificarse en un tipo especificado. Consulta la guía Recuperar Valores Distinguidos para obtener más información.

  • El método IndexView.DropOne() solo devuelve un error, si lo hay. En versiones anteriores, este método también devolvía la respuesta del servidor, que contenía el número de índices descartados. Consulta la sección Remover un Índice de la guía Índices para obtener más información.

  • Actualizaciones en el patrón de construcción para los tipos en el paquete options. El patrón mantiene una serie de funciones Setter, por lo que no puedes establecer datos directamente en un objeto de opciones. Esta actualización no cambia generalmente la forma en que creas y utilizas opciones. Para aprender más, consulta el ticket JIRA de la funcionalidad.

  • El driver ya no soporta el error centinela mongo.ErrUnacknowledgedWrite si una operación de guardar no es reconocida. Para confirmar que el servidor reconoció una operación de guardar, debes acceder a la propiedad Acknowledged de la estructura de resultados devuelta por el método de guardar.

    El siguiente ejemplo muestra cómo confirmar el acuse de recibo de una operación de inserción:

    res, err := coll.InsertOne(context.TODO(), bson.D{{"x", 2}})
    if err != nil {
    panic(err)
    }
    fmt.Print(res.Acknowledged)
  • Puedes establecer opciones para transacciones ejecutadas en una sesión determinada creando una instancia de TransactionOptions y pasando la instancia al método SetDefaultTransactionOptions() del tipo SessionOptions. Para obtener más información, consulta la sección Opciones de sesión y transacción de la guía de Transacciones.

  • El método Collection.Clone() no devuelve un error.

  • Renombra el parámetro canonical del método UnmarshalExtJSON() a canonicalOnly. Si estableces canonicalOnly en true, el método devuelve un error si el JSON extendido no se gestiona en modo canónico. Si se establece en false, el método puede deserializar JSON extendido canónico o relajado. Para obtener más información, consulta la documentación de la API UnmarshalExtJSON().

El 1.17.9 La versión de parche del driver de Go incluye la siguiente corrección de errores:

  • Corrige el siguiente problema de Vulnerabilidades y Exposiciones Comunes (CVE): un búfer GSSAPI delimitado por longitud que se trata como una string C terminada en nulo. Para obtener más información, consulta el problema CVE-2026-2303 relacionado.

Importante

Aviso de desuso de Go Driver v1

El 1.17.8 El lanzamiento del parche del controlador de Go marca oficialmente la obsolescencia del controlador de Go v1.

El 1.17.8 El parche del controlador de Go incluye el siguiente cambio:

  • Se desaprueba la versión1 del controlador de Go y se añade un aviso de depreciación en el go.mongodb.org/mongo-driver. Los usuarios deben migrar a go.mongodb.org/mongo-driver/v2. Para aprender a actualizar tu aplicación de la v1 a la v2, consulta la Guía de migración de Go Driver 2.0.

Para obtener más información sobre los cambios en esta versión, consulta las notas de versión v1.17.8 en GitHub.

Importante

v1.17 es el lanzamiento final planeado de la versión 1.x. Esta versión recibirá correcciones de seguridad y errores, pero el desarrollo y las funcionalidades futuras sólo se incluirán en las versiones 2.x del driver.

La versión de driver Go 1.17 incluye las siguientes mejoras y correcciones:

  • Agrega soporte para la autenticación OpenID Connect (OIDC). Para aprender más, consulta la guía del Mecanismo de autenticación OIDC.

  • Agrega soporte para consultas de rango encriptadas consultables (Queryable Encryption). Para utilizar esta funcionalidad, tu aplicación debe conectarse a MongoDB Server 8.0 o posterior. Para obtener más información sobre las consultas de rango QE, consulta Queryable Encryption en el manual de MongoDB Server.

  • Agrega soporte para MongoDB Server 8.0, excepto para la funcionalidad bulk write del cliente.

  • Extiende el tipo IndexView para incluir los métodos DropOneWithKey() y DropWithKey() para que pueda descartar índices usando sus especificaciones de clave en lugar de sus nombres.

Para obtener más información sobre los cambios en esta versión, consulta las v1.17 notas de versión en GitHub.

La versión de driver Go 1.16 incluye las siguientes mejoras y correcciones:

  • Agrega soporte para especificar un tipo de índice al crear un índice de búsqueda MongoDB.

  • Reduce el uso de memoria cuando el algoritmo de compresión zstd está habilitado.

  • Actualiza algunos requisitos de dependencias. Para ver una lista de actualizaciones, consulta la sección "Actualizar dependencias" de las Notas de la versión v1.16.

Para obtener más información sobre estos cambios, consulta las notas de versión v1.16 en GitHub.

El 1.15.1 La versión corregida del controlador Go incluye las siguientes mejoras y correcciones:

  • Corrige una posible fuga de conexión donde al desconectarse de un clúster de set de réplicas, se quedaban rttMonitor conexiones.

  • Agrega soporte para especificar manualmente un valor de maxTimeMS para operaciones de lectura y agregación cuando se establecen un timeout global del cliente y un timeout de la operación.

  • Agrega un método RemainingBatchLength() que puedes llamar en un flujo de cambios.

Para obtener más información sobre estos cambios, consulta las notas de versión v1.15.1 en Github.

La versión de driver Go 1.15 incluye las siguientes mejoras y correcciones:

  • La rotación de conexiones puede mitigarse estableciendo un tiempo de espera a nivel de cliente mediante la especificación de la opción de conexión timeoutMS o llamando a la función SetTimeout(). Cuando se establece el tiempo de espera, el controlador intenta reutilizar una conexión después de que una operación expira y espera hasta un segundo para verificar si la conexión puede reutilizarse antes de cerrarla.

  • Los eventos del pool de conexiones incluyen un campo Duration para medir la duración del checkout y el tiempo total que tomó establecer una conexión.

La versión de driver Go 1.14 incluye las siguientes mejoras y correcciones:

  • Las versiones de Go anteriores a 1.18 ya no son compatibles.

  • En caso de un tiempo de inactividad de latido, las operaciones en curso se cancelan anticipadamente.

  • Las cadenas de conexión que incluyen el prefijo "mongodb+srv://" pueden contener letras mayúsculas en el nombre del host de SRV.

La versión de driver Go 1.13 incluye las siguientes mejoras y correcciones:

  • Registro para la selección del servidor y SDAM. Para obtener más información sobre el registro, consulta la documentación de Registro.

  • Métodos en el tipo Collection que le permiten gestionar índices de búsqueda de forma programática.

  • Los eventos event.CommandStartedEvent y event.CommandFinishedEvent devuelven el campo DatabaseName. Este campo también se incluye en los análogos del registro de comandos.

  • En una topología particionada, al seleccionar un servidor para reintentar una query sin éxito, el driver excluye el servidor utilizado en el intento inicial. En cambio, si existe más de una instancia mongos elegible, el controlador selecciona una aleatoriamente. Las instancias insalubres se excluyen automáticamente de la selección.

  • La función Transmisión SDAM está desactivada por defecto en AWS Lambda y en plataformas FaaS (función como servicio) similares. Puedes habilitar la supervisión utilizando la opción URI serverMonitoringMode.

La versión de driver Go 1.12 incluye las siguientes mejoras y correcciones:

  • El controlador desacopla las conexiones al terminar una sesión. Esto previene que se filtren conexiones cuando un usuario ejecuta una transacción mientras está conectado a un balanceador de carga.

  • El controlador no lanza un error en tiempo de ejecución cuando deserializas un tipo bson.RawValue vacío con un tipo no válido o serializas un puntero nil de una instancia ReadConcern.

  • Establecer options.LogComponentAll como el componente de registro resulta correctamente en la publicación de registros contra todos los componentes.

Importante

Aviso de obsolescencia

  • Los métodos mongo.NewClient() y client.Connect() están obsoletos. Puedes crear un cliente y conectarte con una sola llamada utilizando el método mongo.Connect().

Nuevas funcionalidades del 1.12 Go versión de driver incluye:

Esta versión del controlador agrega soporte para Queryable Encryption (QI). Para obtener más información sobre los requisitos para utilizar la funcionalidad QE, consulta la Tabla de compatibilidad de drivers con Queryable Encryption.

El método ClientEncryption.CreateEncryptedCollection() crea automáticamente las claves de cifrado de datos cuando se crea una nueva colección cifrada. Para aprender a usar la funcionalidad QE, consulta el Inicio Rápido de Queryable Encryption en el manual del servidor.

Ahora puedes registrar la gestión de conexiones y los eventos de ejecución de comandos utilizando la interfaz de registro LogSink.

Para obtener más información, consulta la guía Logging .

Esta versión del controlador añade funcionalidades al paquete options para especificar cómo el controlador realiza la conversión y reconversión (marshal y unmarshal) de BSON.

El siguiente ejemplo muestra cómo configurar opciones BSON en tu Client. Las opciones especifican los siguientes comportamientos:

  • El driver recurre a json etiquetas struct si faltan las etiquetas struct bson.

  • El controlador convierte nil tipos de mapas de Go como documentos BSON vacíos.

  • El driver organiza los tipos slice de Go nil como arreglos BSON vacíos.

bsonOpts := &options.BSONOptions{
UseJSONStructTags: true,
NilMapAsEmpty: true,
NilSliceAsEmpty: true,
}
options.Client().SetBSONOptions(bsonOpts)

Para un ejemplo completo de cómo especificar e implementar el tipo BSONOptions, consulta la documentación de la API.

Esta versión del controlador simplifica la API WriteConcern. Para obtener más información sobre los cambios, consulta nivel de confirmación de escritura (write concern).

  • Soporte para autenticación con roles IAM de AWS en EKS.

  • Adición del método Cursor.SetBatchSize() para permitir la especificación del tamaño de los lotes recuperados al iterar a través de un cursor.

  • Adición del método UnmarshalValue() para permitir el desensamblado de valores BSON ensamblados con el método MarshalValue().

Volver

Búsqueda vectorial y AWS Bedrock

En esta página