Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Notas de versión

Conozca las novedades en:

  • Versión 4.16

  • Versión 4.15

  • Versión 4.14

  • Versión 4.13

  • Versión 4.12

  • Versión 4.11

  • Versión 4.10

  • Versión 4.9

  • Versión 4.8

  • Versión 4.7

El lanzamiento de PyMongo v4.16 incluye las siguientes nuevas funcionalidades:

  • Reduce el riesgo de fugas de datos confidenciales al eliminar documentos no válidos. bson.errors.InvalidDocument mensajes de error.

  • Actualiza el requisito del controlador dnspython a la versión2.6.1 o posterior.

  • Remover soporte para Eventlet. Si tu aplicación utiliza Eventlet, migra a un modelo de concurrencia compatible, como gevent o asyncio.

  • Actualiza el soporte de Zstandard de las siguientes maneras:

    • Si utiliza Python v3.14 o una versión posterior, PyMongo utiliza la biblioteca estándar.

    • Si utilizas versiones anteriores de Python, PyMongo utiliza el paquete backports.zstd.

  • Actualiza el tipo de retorno de los siguientes métodos para incluir None. Puedes llamar a estos métodos en una instancia de Collection o AsyncCollection.

    • find_one_and_update()

    • find_one_and_replace()

    • find_one_and_delete()

  • Agrega soporte para convertir matrices NumPy de dimensión 1al tipo BinaryVector.

  • Impide que la clase ClientEncryption cargue automáticamente la biblioteca crypt_shared si ya hay otra instancia cargada. Esto soluciona el siguiente error:

    MongoCryptError: An existing crypt_shared library is loaded by the application

El lanzamiento de PyMongo v4.15 incluye las siguientes nuevas funcionalidades:

  • Agrega compatibilidad experimental para consultas de prefijo, sufijo y subcadenas en Queryable Encryption. Estas funcionalidades requieren pymongocrypt 1.16 o posterior. Para obtener más información sobre QE, consulte Cifrado en uso.

    Nota

    Funcionalidad Experimental

    Las consultas de prefijos, sufijos y subcadenas con cifrado consultable (Queryable Encryption) son inestables y su seguridad no está garantizada hasta que estén generalmente disponibles (GA). Utilícelos solo en cargas de trabajo experimentales.

  • Añade soporte para la codificación y decodificación de valores BSON Decimal128 en valores Python decimal.Decimal mediante la clase bson.codec_options.TypeRegistry. El siguiente ejemplo muestra cómo codificar un valor Decimal128 en un valor decimal.Decimal mediante la clase bson.decimal128.DecimalEncoder:

    opts = CodecOptions(type_registry=TypeRegistry([DecimalEncoder()]))
    bson.encode({"d": decimal.Decimal('1.0')}, codec_options=opts)
  • Agrega soporte para ruedas Windows ARM64.

Advertencia

Cambios radicales

PyMongo v4.14 contiene cambios disruptivos. Para obtener más información, consulte los cambios disruptivos en la versión 4.14.

El lanzamiento de PyMongo v4.14 incluye las siguientes nuevas funcionalidades:

  • Agrega soporte preliminar para Python 3.14, incluyendo capacidades de ejecución libre de hilos. El driver aún no admite las siguientes funcionalidades con Python 3.14:

    • Subintérpretes (concurrent.interpreters)

    • Subprocesamiento libre con cifrado

    • mod_wsgi

  • Elimina el soporte experimental para subprocesos libres con Python 3.13.

  • Añade las siguientes propiedades a la clase bson.codec_options.TypeRegistry:

    • .codecs: Proporciona acceso a códecs específicos para el tipo de un objeto TypeRegistry

    • .fallback_encoder: proporcionar acceso al codificador de respaldo de un objeto TypeRegistry

  • Agrega el método append_metadata() a las clases MongoClient y AsyncMongoClient. Puede usar este método para enviar los metadatos del cliente al servidor on-demand.

  • Mejora el rendimiento de selección del servidor cuando se utiliza la referencia de lectura principal.

El lanzamiento de PyMongo v4.13 incluye las siguientes nuevas funcionalidades:

  • La API asíncrona de PyMongo está disponible de manera general. Para aprender cómo migrar al API asíncrono de PyMongo desde el driver PyMongo o la librería Motor, consulta la guía Migrar a PyMongo Async.

  • Se corrige un error en el que WriteConcern() no podía evaluarse al utilizar w="majority".

Para ver una lista completa de los problemas resueltos en esta versión, consulta las notas de versión de Jira.

El lanzamiento de PyMongo v4.12 incluye las siguientes nuevas funcionalidades:

  • Agrega soporte para configurar la duración de la caché de DEK utilizando el argumento key_expiration_ms para AutoEncryptionOpts.

  • Agrega soporte para $lookup en CSFLE y QE para MongoDB Server 8.1 y versiones posteriores.

  • Añade los métodos gridfs.asynchronous.grid_file.AsyncGridFSBucket.rename_by_name() y gridfs.grid_file.GridFSBucket.rename_by_name(). Puedes usarlos para renombrar archivos con múltiples revisiones de forma más eficiente.

  • Se agregan los métodos gridfs.asynchronous.grid_file.AsyncGridFSBucket.delete_by_name() y gridfs.grid_file.GridFSBucket.delete_by_name(). Puedes utilizar estos métodos para borrar archivos con múltiples revisiones de manera más eficiente.

  • AsyncMongoClient los objetos ya no realizan la resolución DNS para mongodb+srv:// cadenas de conexión en la creación. Para evitar el bloqueo del ciclo asyncio, PyMongo ahora pospone la resolución hasta que el cliente se conecte por primera vez.

  • Agrega soporte de sugerencias de índice a los métodos pymongo.asynchronous.collection.AsyncCollection.distinct() y pymongo.collection.Collection.distinct().

  • Se desaconseja el uso del parámetro hedge para las preferencias de lectura PrimaryPreferred, Secondary, SecondaryPreferred y Nearest. El soporte para hedge se eliminará en PyMongo v5.0.

  • Eliminación del soporte de PyOpenSSL del controlador asíncrono de PyMongo.

  • Permite nombres de host SRV válidos con menos de 3 partes.

Advertencia

Cambios radicales

PyMongo v4.11 contiene cambios disruptivos. Para obtener más información, consulte los cambios disruptivos en la versión 4.11.

El lanzamiento de PyMongo v4.11 incluye las siguientes nuevas funcionalidades:

  • Añade soporte para CPython de hilos libres al ejecutar Python v3.13+. Para obtener más información sobre el "free threading", consulte la documentación de Python.

  • El cifrado en uso requiere pymongocrypt v1.12 o posterior.

  • Los métodos MongoClient.address() y AsyncMongoClient.address() bloquean correctamente cuando se llaman en clientes no conectados.

  • Añade compatibilidad con __repr__ para las clases IndexModel y SearchIndexModel.

  • Agrega un parámetro sort a los siguientes métodos:

    • Collection.update_one()

    • Collection.replace_one()

    • operations.UpdateOne()

    • operations.UpdateMany()

  • Los métodos MongoClient.bulkWrite() y AsyncMongoClient.bulk_write() arrojan un error si los usas con guardados no confirmados cuando las opciones ordered o verboseResults están configuradas en True.

  • Corrige un error que causaba que DatetimeMS se codificara incorrectamente como '{"$date": "X"}' en lugar de '{"$date": X}' al usar la antigua representación datetime JSON extendida de MongoDB.

  • Corrige un error que causaba que el método bson.json_util.loads() generara un IndexError en lugar de un ValueError al analizar un valor $date no válido.

El lanzamiento de PyMongo v4.10 incluye las siguientes nuevas funcionalidades:

  • Agrega soporte provisional para un nuevo subtipo binario BSON (9), que se puede usar para el almacenamiento eficiente y la recuperación de vectores usando los métodos bson.binary.Binary.from_vector() y bson.binary.Binary.as_vector(). El soporte para el subtipo BSON 9 está en versión beta y puede cambiar antes de su lanzamiento general.

  • Agrega "c" al campo de metadatos de driver.name del cliente cuando una aplicación utiliza la extensión C.

  • Corrige un error que podría causar un bloqueo en AsyncMongoClient.

Advertencia

Cambios radicales

PyMongo v4.9 contiene cambios disruptivos. Para obtener más información, consulte los cambios disruptivos en la versión 4.9.

El lanzamiento de PyMongo v4.9 incluye las siguientes nuevas funcionalidades:

  • Se añade soporte para MongoDB Server 8.0 y Python 3.13.

  • Agrega soporte para consultas de rango de 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 Queryable Encryption, consulta Queryable Encryption en el manual de MongoDB Server.

  • Añade una nueva API asíncrona experimental que reemplaza a Motor. Esta API está en fase beta y está sujeta a cambios antes de su lanzamiento general.

Advertencia

Cambios radicales

PyMongo v4.8 contiene cambios disruptivos. Para obtener más información, consulte los cambios disruptivos en la versión 4.8.

El lanzamiento de PyMongo v4.8 incluye las siguientes nuevas funcionalidades:

  • Implementación de la automatización del Ciclo de Vida de Desarrollo de Software Seguro (SSDLC) en el proceso de lanzamiento. Las versiones de GitHub incluyen una lista de materiales de software (SBOM) y archivos de firma correspondientes a los archivos de distribución lanzados en PyPI.

  • En objetos de tipo bson.binary.Binary, el método repr() se redacata cuando el subtipo binario es SENSITIVE_SUBTYPE (8).

  • Se corrigió un error en los flujos de cambio donde los campos startAtOperationTime y resumeToken se podían agregar a un intento de reintento, lo que causaba que el reintento fallara.

  • En Windows, se cambió la metadatos de handshake de os.name a Windows para mejorar el tiempo de importación.

  • Se ha mejorado el rendimiento de las operaciones de MongoClient, especialmente cuando el controlador ejecuta muchas operaciones de forma concurrente.

  • Se agregó una alternativa al módulo stdlib ssl si la importación del módulo pyopenssl falla con un AttributeError.

Advertencia

Cambios radicales

PyMongo v4.7 contiene cambios disruptivos. Para obtener más información, consulte los cambios disruptivos en la versión 4.7.

El lanzamiento de PyMongo v4.7 incluye las siguientes nuevas funcionalidades:

  • Se agregó el Hello.connection_id, CommandStartedEvent.server_connection_id, CommandSucceededEvent.server_connection_id, y CommandFailedEvent.server_connection_id propiedad.

  • Se añadió compatibilidad para sufijos de nombre para proveedores de Key Management Service (KMS) para el cifrado a nivel de campo del lado del cliente (CSFLE). Esta funcionalidad requiere pymongocrypt v1.9+ y libmongocrypt v1.9+. Para mas información, consulte la documentación API de la AutoEncryptionOpts clase.

  • Mejoró el rendimiento de la codificación de documentos BSON a JSON.

  • Los métodos ClientEncryption.encrypt() y ClientEncryption.encrypt_expression() ahora permiten pasar el argumento key_id como un objeto UUID.

  • Inflar un objeto RawBSONDocument que contiene un valor Code ya no causa un error.

  • Se corrigió un error en Python 3.12 donde el mensaje de error RuntimeError: can't create new thread at interpreter shutdown podía escribirse en stderr cuando se iniciaba un hilo MongoClient mientras el intérprete de Python se estaba cerrando.

  • Se corrigió un error que impedía que la biblioteca orjson codificara las instancias Int64. Código como el del siguiente ejemplo ahora se ejecuta correctamente:

>>> import orjson
>>> from bson import json_util
>>> orjson.dumps({'a': Int64(1)}, default=json_util.default, option=orjson.OPT_PASSTHROUGH_SUBCLASS)

Volver

Tutorial: Migrar Flask de SQL a MongoDB

En esta página