Conozca las novedades en:
Novedades en 4.16
La versión v4.16 de PyMongo incluye las siguientes características nuevas:
Reduce el riesgo de fugas de datos confidenciales al eliminar documentos no válidos.
bson.errors.InvalidDocumentmensajes de error.Actualiza el requisito
dnspythondel controlador a v2.6.1 o posterior.Elimina la compatibilidad con Eventlet. Si su aplicación utiliza Eventlet, migre a un modelo de concurrencia compatible, como gevent o asyncio.
Actualiza el soporte de Zstandard de las siguientes maneras:
Si usa Python v3.14 o posterior, PyMongo usa la biblioteca estándar.
Si utiliza versiones anteriores de Python, PyMongo utiliza el paquete
backports.zstd.
Actualiza el tipo de retorno de los siguientes métodos para incluir
None. Puede llamar a estos métodos en una instanciaCollectionoAsyncCollection.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
ClientEncryptioncargue automáticamente la bibliotecacrypt_sharedsi ya hay otra instancia cargada. Esto soluciona el siguiente error:MongoCryptError: An existing crypt_shared library is loaded by the application
Novedades en 4.15
La versión v4.15 de PyMongo incluye las siguientes características nuevas:
Añade compatibilidad experimental con consultas de prefijo, sufijo y subcadena de cifrado consultable. Estas funciones requieren
pymongocrypt1.16 o posterior. Para obtener más información sobre QE, consulte Cifrado en uso.Nota
Característica experimental
Las consultas de prefijo, sufijo y subcadena de cifrado consultable son inestables y su seguridad no está garantizada hasta que estén disponibles para el público general (GA). Úselas solo en cargas de trabajo experimentales.
Añade compatibilidad para codificar y decodificar valores BSON
Decimal128en valores Pythondecimal.Decimalmediante la clasebson.codec_options.TypeRegistry. El siguiente ejemplo muestra cómo codificar un valorDecimal128en un valordecimal.Decimalmediante la clasebson.decimal128.DecimalEncoder:opts = CodecOptions(type_registry=TypeRegistry([DecimalEncoder()])) bson.encode({"d": decimal.Decimal('1.0')}, codec_options=opts) Agrega soporte para ruedas Windows ARM64.
Novedades en 4.14
Advertencia
Cambios radicales
La versión de PyMongo contiene cambios importantes. Para4.14 4.14 más información, consulte Cambios importantes de la versión.
La versión v4.14 de PyMongo incluye las siguientes características nuevas:
Añade compatibilidad preliminar con Python 3.14, incluyendo funciones de subprocesos libres. El controlador aún no es compatible con las siguientes funciones de Python 3.14:
Subintérpretes (
concurrent.interpreters)Subprocesos libres con cifrado
mod_wsgi
Elimina el soporte experimental para subprocesos libres con Python 3.13.
Agrega las siguientes propiedades a la clase
bson.codec_options.TypeRegistry:.codecs: Proporciona acceso a códecs específicos para el tipo de un objetoTypeRegistry.fallback_encoder: proporcionar acceso al codificador de respaldo de un objetoTypeRegistry
Añade el método
append_metadata()a las clasesMongoClientyAsyncMongoClient. Puede usar este método para enviar metadatos del cliente al servidor cuando lo necesite.Mejora el rendimiento de selección de servidor cuando se utiliza la referencia de lectura principal.
Novedades en 4.13
La versión v4.13 de PyMongo incluye las siguientes características nuevas:
La API asíncrona de PyMongo está disponible de forma general. Para saber cómo migrar a la API asíncrona de PyMongo desde el controlador de PyMongo o la biblioteca Motor, consulta la guía "Migrar a PyMongo asíncrona".
Se corrige un error en el que
WriteConcern()no podía evaluarse al utilizarw="majority".
Para ver una lista completa de problemas resueltos en esta versión, consulte las notas de la versión de Jira.
Novedades en 4.12
La versión v4.12 de PyMongo incluye las siguientes características nuevas:
Agrega soporte para configurar la duración de la memoria caché de DEK mediante el uso del argumento
key_expiration_msenAutoEncryptionOpts.Agrega soporte para
$lookupen CSFLE y QE para MongoDB Server 8.1 y versiones posteriores.Añade los métodos
gridfs.asynchronous.grid_file.AsyncGridFSBucket.rename_by_name()ygridfs.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()ygridfs.grid_file.GridFSBucket.delete_by_name(). Puedes utilizar estos métodos para borrar archivos con múltiples revisiones de manera más eficiente.AsyncMongoClientLos objetos ya no realizan la resolución DNS de las cadenas de conexiónmongodb+srv://al crearse. Para evitar bloquear el bucleasyncio, PyMongo ahora pospone la resolución hasta que el cliente se conecta por primera vez.Agrega soporte de sugerencias de índice a los métodos
pymongo.asynchronous.collection.AsyncCollection.distinct()ypymongo.collection.Collection.distinct().Se desaconseja el uso del parámetro
hedgepara las preferencias de lecturaPrimaryPreferred,Secondary,SecondaryPreferredyNearest. El soporte parahedgese eliminará en PyMongo v5.0.Elimina la compatibilidad con PyOpenSSL del controlador PyMongo Async.
Permite nombres de host SRV válidos con menos de 3 partes.
Novedades en 4.11
Advertencia
Cambios radicales
La versión de PyMongo contiene cambios importantes. Para4.11 4.11 más información, consulte Cambios importantes de la versión.
La versión v4.11 de PyMongo incluye las siguientes características nuevas:
Añade compatibilidad con CPython de subprocesos libres al ejecutar Python v3.13+. Para más información sobre subprocesos libres, consulta la documentación de Python.
El cifrado en uso requiere
pymongocryptv1.12 o posterior.Los métodos
MongoClient.address()yAsyncMongoClient.address()se bloquean correctamente cuando se invocan en clientes no conectados.Agrega soporte
__repr__para las clasesIndexModelySearchIndexModel.Agrega un parámetro
sorta los siguientes métodos:Collection.update_one()Collection.replace_one()operations.UpdateOne()operations.UpdateMany()
Los métodos
MongoClient.bulkWrite()yAsyncMongoClient.bulk_write()arrojan un error si los usas con guardados no confirmados cuando las opcionesorderedoverboseResultsestán configuradas enTrue.Corrige un error que causaba que
DatetimeMSse codificara incorrectamente como'{"$date": "X"}'en lugar de'{"$date": X}'al usar la representación de fecha y hora JSON extendida de MongoDB heredada.Corrige un error que causaba que el método
bson.json_util.loads()generara unIndexErroren lugar de unValueErroral analizar un valor$dateno válido.
Novedades en 4.10
La versión v4.10 de PyMongo incluye las siguientes características nuevas:
Añade compatibilidad provisional con un nuevo subtipo binario BSON9 (), que permite el almacenamiento y la recuperación eficientes de vectores mediante los
bson.binary.Binary.from_vector()bson.binary.Binary.as_vector()métodos y. La compatibilidad con el subtipo BSON 9 está en fase beta y está sujeta a cambios antes de su lanzamiento general.Agrega
"c"al campo de metadatos del clientedriver.namecuando una aplicación usa la extensión C.Corrige un error que podría provocar que
AsyncMongoClientse bloquee.
Novedades en 4.9
Advertencia
Cambios radicales
La versión de PyMongo contiene cambios importantes. Para4.9 4.9 más información, consulte Cambios importantes de la versión.
La versión v4.9 de PyMongo incluye las siguientes características nuevas:
Se añade soporte para MongoDB Server 8.0 y Python 3.13.
Añade compatibilidad con consultas de rango de cifrado consultable. Para usar esta función, la aplicación debe conectarse a MongoDB Server 8.0 o posterior. Para obtener más información sobre el cifrado consultable,consulte Cifrado consultable 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.
Novedades en 4.8
Advertencia
Cambios radicales
La versión de PyMongo contiene cambios importantes. Para4.8 4.8 más información, consulte Cambios importantes de la versión.
La versión v4.8 de PyMongo incluye las siguientes características nuevas:
Se implementó 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 publicados en PyPI.
En objetos de tipo
bson.binary.Binary, el métodorepr()se redacta cuando el subtipo binario esSENSITIVE_SUBTYPE(8).Se corrigió un error en los flujos de cambio donde los campos
startAtOperationTimeyresumeTokense podían agregar a un intento de reintento, lo que causaba que el reintento fallara.En Windows, se cambiaron los metadatos del protocolo de enlace de
os.nameaWindowspara mejorar el tiempo de importación.Se mejoró el rendimiento de las operaciones
MongoClient, especialmente cuando el controlador ejecuta muchas operaciones simultáneamente.Se agregó una alternativa al módulo stdlib
sslsi la importación del módulopyopensslfalla con unAttributeError.
Novedades en 4.7
Advertencia
Cambios radicales
La versión de PyMongo contiene cambios importantes. Para4.7 4.7 más información, consulte Cambios importantes de la versión.
La versión v4.7 de PyMongo incluye las siguientes características nuevas:
Se agregaron las
Hello.connection_idpropiedades, CommandStartedEvent.server_connection_id, CommandSucceededEvent.server_connection_id y CommandFailedEvent.server_connection_id.Se agregó compatibilidad con sufijos de nombre para proveedores del Servicio de Administración de Claves (KMS) para el Cifrado a Nivel de Campo del Lado del Cliente (CSFLE). Esta función requiere
pymongocryptv1.9+ ylibmongocryptv1.9+. Para obtener más información, consulte la documentación de la API de la clase AutoEncryptionOpts.Se mejoró el rendimiento de la codificación de documentos BSON a JSON.
Los métodos
ClientEncryption.encrypt()yClientEncryption.encrypt_expression()ahora permiten que el argumentokey_idse pase como un objetoUUID.Inflar un objeto
RawBSONDocumentque contiene un valorCodeya no provoca un error.Se corrigió un error en Python 3.12 donde el mensaje de error
RuntimeError: can't create new thread at interpreter shutdownpodía escribirse enstderrcuando se iniciaba un hiloMongoClientmientras el intérprete de Python se estaba cerrando.Se corrigió un error que impedía que la biblioteca
orjsoncodificara las instanciasInt64. 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)