Descubra qué hay de nuevo en:
Novedades en 2.25
Importante
La compatibilidad con MongoDB Server 4.2 está en desuso en esta versión y se eliminará en una versión posterior. Si utiliza MongoDB Server 4.2 o anterior, actualice a MongoDB Server 4.4 o posterior.
El lanzamiento del driver Ruby 2.25 incluye las siguientes nuevas funcionalidades, cambios y corrección de errores:
Agrega las siguientes funcionalidades a la encriptación en uso:
Agrega compatibilidad para usar
$lookupen pipeline de agregación que hacen referencia a colecciones habilitadas para encriptación en uso.Permite especificar una clave de datos utilizando el campo
keyAltName, en lugar de unkeyId, al definir el mapa de campos cifrados para una colección de Queryable Encryption.Agrega compatibilidad con la opción
delegateden la clave maestra KMIP. Cuando se configura entrue, el servidor KMIP realiza el cifrado y descifrado de la clave de datos, de modo que la llave de cifrado de claves nunca abandona el servidor.Agrega soporte para proveedores de KMS con nombre, que usan el formato
type:name.Envuelve el error generado cuando
mongocrypt_kms_ctx_faildevuelvefalse.
Añade el método
Database#cursor_command, que crea un cursor a partir de una respuesta de comando.Desaprueba las opciones de ajuste de reintentos heredadas
:max_read_retries,:read_retry_intervaly:max_write_retriescuando se configuran en unMongo::Client. Estas opciones solo se aplican a la funcionalidad de reintentos heredada desaprobada. Las lecturas y guardados reintentables están habilitados por defecto e ignoran estas opciones.Genera un error cuando se pasa un valor booleano no válido a la opción URI
tlsossl.Envuelve el error generado cuando
mongocrypt_kms_ctx_faildevuelvefalse.Oculta las credenciales en la representación de URI y en los mensajes de error
Mongo::Error::InvalidURI.Protege el hilo del supervisar y corrige el manejo de la opción
raise_on_invalid.Corrige una fuga de conexión en topologías equilibradas por carga.
Corrige el comportamiento de la preferencia de lectura
secondaryPreferredpara cumplir con la especificación de selección del servidor.Mantiene el objeto
MemoryPointeractivo enBinary.wrap_stringpara evitar la colección prematura de elementos no utilizados.Detiene la publicación de eventos SDAM de las comprobaciones de tiempo de ida y vuelta de supervisar.
Envía
afterClusterTimeal guardar en sesiones causalmente coherentes.Cierra la conexión de supervisión cuando un servidor se marca como
Unknowndebido a un error de red.Deja de agregar niveles de confirmación de lectura y niveles de confirmación de escritura (write concern) a los comandos asistentes del índice de búsqueda.
Para obtener más información sobre esta versión, consulte las notas de versión v2.25.0 en GitHub.
Novedades en 2.24.1
La versión 2.24.1 del driver Ruby incluye las siguientes nuevas funcionalidades, cambios y correcciones de errores:
Evita que los rastreos de OpenTelemetry capturen comandos confidenciales.
Agrega la opción
Mongo::Config.include_server_address_in_errors, que por defecto está enfalse. Cuando está activado, los mensajes deMongo::Error::OperationFailureyMongo::Error::BulkWriteErrorincluyen el host y el puerto del servidor que produjo el error.Agrega la propiedad
databaseNamea los eventos de comando, alineándose con la especificación de supervisión de comandos.Expone
atClusterTimeen sesiones de snapshot.
Para obtener más información sobre esta versión, consulte las notas de versión v2.24.1 en GitHub.
Novedades de la versión 2.24
Importante
Esta versión deja de admitir las versiones 3.6 y 4.0 de MongoDB Server. Si está utilizando MongoDB Server 4.0 o anterior, actualice a la versión 4.2 o posterior.
El lanzamiento del driver Ruby 2.24 incluye las siguientes nuevas funcionalidades, cambios y corrección de errores:
Introduce la opción de conexión
:server_monitoring_mode. Para obtener más información, consulte la sección Selección de servidor en la guía Opciones de conexión.Agrega soporte para funcionalidades de limitación de la velocidad de conexión de entrada. Puedes utilizar las opciones
:enable_overload_retargetingy:max_adaptive_retriespara mejorar el comportamiento cuando estás conectado a servidores sobrecargados. Para obtener más información sobre estas opciones, consulte la sección Operaciones de lectura y escritura en la guía Opciones de conexión.Añade soporte para la gestión inteligente de cargas de trabajo (IWM) de MongoDB. El driver Ruby ahora gestiona con elegancia los escenarios de bloqueo de guardado y optimiza el establecimiento de conexiones durante condiciones de alta carga para mantener la disponibilidad de la aplicación. Para aprender más sobre IWM, consulta Bloqueo de guardado en la documentación de Atlas. Estas funcionalidades estarán disponibles en clústeres de Atlas que ejecuten MongoDB 9.0 y versiones posteriores.
Para aprender más sobre esta versión, consulta las Notas de la versión v2.24 en GitHub.
Novedades en 2.23
Importante
El soporte para las versiones 3.6 y 4.0 de MongoDB Server está obsoleto en este lanzamiento y se eliminará en la versión 2.24. Si estás utilizando MongoDB Server 4.0 o anterior, actualízalo a la versión 4.2 o posterior.
El lanzamiento del driver Ruby 2.23 incluye las siguientes nuevas funcionalidades, cambios y corrección de errores:
Agrega soporte para rastrear operaciones del controlador con OpenTelemetry. Cuando está habilitada, esta funcionalidad rastrea las operaciones del driver Ruby y los comandos correspondientes del servidor. Puede habilitar el rastreo en una instancia de
Mongo::Clientconfigurando la opcióntracingentrue, o configurarlo globalmente mediante la variable de entornoOTEL_RUBY_INSTRUMENTATION_MONGODB_ENABLED.Agrega la opción de configuración
csfle_convert_to_ruby_typespara convertir los tipos de Cifrado a Nivel de Campo del Lado del Cliente (CSFLE) a tipos de Ruby.Agrega el motor de Ruby (por ejemplo, TruffleRuby o JRuby) al campo de plataforma en los registros de metadatos del cliente.
Permite cadenas de conexión SRV que utilicen nombres de host válidos con menos de tres etiquetas.
Implementa correctamente la opción URI
srv_max_hosts.Se agrega soporte para Ruby 4.0.
Corrige el manejo del Timeout de Operaciones del Lado del Cliente (CSOT) en
with_transactional tratar correctamente los valores de timeout cero (infinito) y positivos.
Para aprender más sobre esta versión, consulta las Notas de la versión v2.23 en GitHub.
Novedades en 2.22
La 2.22 release del controlador Ruby incluye las siguientes funcionalidades, cambios y mejoras:
Agrega una opción de ordenación para los métodos
update_oneyreplace_one. Para más información, consulta la documentación de la API para update_one y replace_one.Agrega lógica de reintentos al manejo de
SocketErrordurante los retiros del pool de conexiones.Corrige un
ArgumentErrorque se producía cuando un servidor era marcado comounknown.
Para aprender más sobre esta versión, consulta las Notas de la versión v2.22 en GitHub.
Novedades en 2.21.1
El lanzamiento 2.21.1 del driver Ruby incluye las siguientes nuevas funcionalidades, cambios y mejoras:
Agrega el parámetro
typea los métodos de creación de índices de búsquedaMongo::SearchIndex::View#create_oneyMongo::SearchIndex::View#create_many. Esto te permite crear índices de MongoDB Vector Search de forma programática. Para aprender más y ver ejemplos, consulta la guía Índices de búsqueda de MongoDB y MongoDB Vector Search.Se agrega compatibilidad con Ruby 3.3. Para obtener más información, consulta Compatibilidad.
BSON v5.1
La gema bson es la implementación de la especificación BSON en Ruby. bson v5.1 acompaña al controlador Ruby v2.21.1 release.
La versión bson 5.1 incluye las siguientes funcionalidades, cambios y mejoras:
Agrega el tipo
BSON::Vectorpara representar vectores de valores numéricos. Para aprender más, consulta la sección BSON::Vector de la guía BSON.BSON::DocumentLos objetos no admiten el uso de los métodos#deep_symbolize_keys!y#symbolize_keys!. En versiones anteriores, el método#symbolize_keys!levanta unArgumentErrorcuando se usa en unBSON::Document, pero#deep_symbolize_keys!no lo hace, y solo retorna unHashen vez de unBSON::Document.Esta versión agrega una advertencia cuando usas
#deep_symbolize_keys!en una instanciaBSON::Document. Enbsonv6.0, esta acción generará un error.
Para obtener más información sobre esta versión, consulte las notas de versión v2.21.1 en GitHub.
Novedades en 2.21
La versión 7.6.0 del driver de Ruby 2.21 incluye las siguientes nuevas funcionalidades:
Admite la funcionalidad Client-Side Operations Timeout (CSOT), que unifica la mayoría de las opciones relacionadas con el tiempo de espera en una sola opción
timeout_ms.Admite la versión 8.0 de MongoDB Server.
Admite consultas de rango v2 con Queryable Encryption, incluyendo un nuevo parámetro
trim_factor. Para más información sobre Queryable Encryption, consulte Queryable Encryption en el manual de MongoDB Server.
Para aprender más sobre esta versión, consulta las Notas de la versión v2.21 en GitHub.
Novedades en 2.20
La versión 7.6.0 del driver de Ruby 2.20 incluye las siguientes nuevas funcionalidades:
Se descontinúa el soporte para Ruby 2.5 y 2.6. Se deprecia el soporte para Ruby 2.7 y JRuby 9.2, que se descontinuarán en la próxima versión menor del driver. Agrega soporte para JRuby 9.4.
Admite la versión recientemente lanzada de Ruby-BSON 5.0.
Permite cadenas de conexión sin barra entre los hosts y las opciones. Por ejemplo,
mongodb://example.com?w=1ymongodb://example.com/?w=1son ahora ambas cadenas de conexión válidas.Envía los metadatos de ejecución y orquestación de contenedores del entorno del cliente al servidor para fines de análisis.
Escribe un mensaje de advertencia en el registro cuando detecta el host como una instancia de CosmosDB (Azure) o DocumentDB (Amazon).
Intenta reintentos de operaciones de lectura o guardar en una instancia diferente de
mongosen una topología particionada, si es posible.
Para aprender más sobre esta versión, consulta las Notas de la versión v2.20 en GitHub.