Descubra as novidades de cada versão:
Novidades no 4.19
Aviso
Mudanças de última hora
PyMongo v4.19 contém alterações significativas. Para obter mais informações, consulte a versão 4.19 das Alterações significativas.
A versão PyMongo v4.19 inclui as seguintes novas funcionalidades:
Adiciona suporte para Python v3.15.
Adiciona suporte para executar os clientes síncronos e assíncronos em subinterpretadores, inclusive dentro da classe
concurrent.futures.InterpreterPoolExecutorno Python v3.14 ou posterior. Em subinterpretadores, o driver para e une as threads para monitorar do cliente síncrono quando o interpretador é encerrado.Adiciona suporte para rotear solicitações de KMS (Key Management Service) para criptografia no nível do campo no lado do cliente e Queryable Encryption por meio de um HTTP proxy. Para rotear essas solicitações, use a opção
kms_connect_callbacknas classeAutoEncryptionOpts,ClientEncryptioneAsyncClientEncryption, ou passe o assistenteHTTPProxyKMSConnectouAsyncHTTPProxyKMSConnect.Adiciona o argumento de palavra-chave
srv_host_validatoràs classesMongoClienteAsyncMongoClient, uma alternativa à opção de stringsrvAllowedHostsSuffixpara implantações cujos hospedar SRV aceitáveis não podem ser expressos como um único sufixo. A chamada de resposta é executada uma vez para cada host retornado e deve retornar um booleano. Esta opção é mutuamente exclusiva comsrvAllowedHostsSuffix.Permite que
srvAllowedHostsSuffixseja um rótulo único reservado para uso privado ou especial, comolocalhost,testouinternal.Corrige um bug em que o cliente síncrono poderia sofrer deadlock permanentemente sob gevent quando um greenlet é encerrado enquanto verifica uma conexão de volta ao pool.
Corrige bugs nos metadados de handshake.
MongoClient.append_metadata()eAsyncMongoClient.append_metadata()agora comparam todo o objetoDriverInfoquando detectam duplicatas, e os camposdriver.nameedriver.versionagora usam posições de índice correspondentes.Corrige um bug na sondagem SRV em que o driver não atualizava a topologia quando um dos hospedar retornados era inválido.
Corrige um bug em que o decodificador BSON da extensão C aceitava documentos cujos dados de elementos se sobrepunham ao terminador do documento em vez de gerar
InvalidBSON.Corrige um bug em que
decode_all()aceitava buffers que terminavam em um documento parcial em vez de gerarInvalidBSON. Isso agora corresponde à extensão C.
Para saber mais sobre esta versão, consulte as notas de versão v4.19 no Github.
Novidades em 4.18.3
Importante
O PyMongo v4.18.3 inclui uma correção para CVE-2026-106435.
Para obter as informações mais recentes sobre atualizar de segurança do MongoDB, consulte Boletins de segurança do MongoDB.
Para saber mais sobre esta versão, consulte as Notas da versão v4.18.3 no GitHub.
Novidades em 4.18.2
Importante
O PyMongo v4.18.2 inclui correções para os seguintes problemas de segurança:
Para obter as informações mais recentes sobre atualizar de segurança do MongoDB, consulte Boletins de segurança do MongoDB.
Para saber mais sobre esta versão, consulte as Notas da versão v4.18.2 no GitHub.
Novidades em 4.18.1
Importante
O PyMongo v4.18.1 inclui uma correção para CVE-2026-88029.
Para obter as informações mais recentes sobre atualizar de segurança do MongoDB, consulte Boletins de segurança do MongoDB.
Para saber mais sobre esta versão, consulte as Notas da versão v4.18.1 no GitHub.
Novidades no 4.18
Aviso
Mudanças de última hora
PyMongo v4.18 contém alterações significativas. Para obter mais informações, consulte a versão 4.18 das Alterações significativas.
A versão PyMongo v4.18 inclui as seguintes novas funcionalidades:
Adiciona suporte para MongoDB Server v9.0.
Adiciona a opção de conexão
srvAllowedHostsSuffix, que você pode definir como uma opção de URI ou como um argumento de palavra-chaveMongoClientouAsyncMongoClient. Ao se conectar usando uma string de conexãomongodb+srv://, essa opção substitui o requisito padrão de que os hospedar retornados pelo registro SRV tenham o mesmo domínio pai que o nome do hospedar de semente. O sufixo não pode ser um sufixo público, conforme listado na Lista de Sufixos Públicos.Oferece suporte de disponibilidade geral para consultas de prefixo, sufixo e subcadeia de Queryable Encryption para MongoDB Server v9.0 ou posterior. Essas query exigem
libmongocryptv1.20.0 ou posterior. Esta versão traz as seguintes alterações relacionadas:Adiciona o valor
Algorithm.STRINGe a classeStringOpts, que substituemAlgorithm.TEXTPREVIEWeTextOpts. Os valores substituídos estão obsoletos.Adiciona os tipos de query
QueryType.PREFIX,QueryType.SUFFIXeQueryType.SUBSTRING. Os tipos de query correspondentesPREFIXPREVIEW,SUFFIXPREVIEWeSUBSTRINGPREVIEWcontinuam disponíveis para uso experimental com versões do MongoDB Server anteriores à v9.0.Adiciona o parâmetro
string_optsaos métodosClientEncryption.encrypt()eAsyncClientEncryption.encrypt(), e descontinua o parâmetrotext_opts. Cada versão dopymongocryptaceita apenas um desses dois nomes de parâmetro. O driver gera umConfigurationErrorse você passartext_optscompymongocryptv1.19 ou posterior,string_optscompymongocryptv1.16 até a versão v1.18, ou ambos os nomes de uma vez.
Melhora o desempenho da conexão TLS reutilizando sessões TLS em conexões com o mesmo servidor, o que evita um handshake completo em cada nova conexão. Clientes síncronos suportam a retomada de sessão em todas as versões do Python, e clientes assíncronos suportam-na no Python v3.11 ou posterior.
Melhora o desempenho do Gerenciamento Inteligente de Carga de Trabalho ao repetir erros de sobrecarga apenas quando não se espera que uma nova tentativa piore as condições do servidor.
Adiciona suporte para cursor de exaustão (
CursorType.EXHAUST) contramongosv7.1 ou posterior.Melhora o desempenho e o uso de memória na decodificação de documentos grandes para objetos
bson.raw_bson.RawBSONDocument, e melhora o desempenho na decodificação lenta de um objetoRawBSONDocumentquando a extensão C está disponível.Oculta propriedades potencialmente sensíveis do mecanismo de autenticação, como tokens de sessão da Amazon Web Services, das representações de string dos objetos
MongoClienteAsyncMongoClient.Valida o tamanho descompactado de uma mensagem
OP_COMPRESSEDem relação amax_message_size, o que impede o esgotamento da memória de respostas de servidor compactadas criadas maliciosamente.Corrige uma possível leitura fora dos limites na extensão C ao decodificar um array de documentos BSON. Se um documento incorporado declarar um comprimento que exceda os bytes restantes no array, o driver agora gera um erro
bson.errors.InvalidBSON.Corrige o método
bson.json_util.loads()para rejeitar valores$timestampque contêm campos diferentes detei.Corrige um bug no Windows e no macOS ao usar o PyOpenSSL, no qual as variáveis de ambiente
SSL_CERT_FILEeSSL_CERT_DIRforam mescladas com o sistema operacional ou o armazenamento de certificadoscertifiem vez de substituí-lo.Descontinua o suporte ao PyPy. O suporte será removido em uma versão futura.
Para saber mais sobre esta versão, consulte as notas de versão v4.18 no Github.
O que há de novo em 4.17
A versão PyMongo v4.17 inclui as seguintes novas funcionalidades:
Adiciona gerenciadores de contexto
ClientSession.bind()eAsyncClientSession.bind(), que permitem vincular uma sessão a todas as operações de banco de dados em um bloco em vez de passar a sessão para cada operação. Para saber mais sobre o métodobind(), consulte o guia Transações.Adiciona suporte para recursos de limitação da taxa de conexão de entrada. Você pode usar as opções
max_adaptive_retrieseenable_overload_retargetingpara melhorar o comportamento quando conectado a servidores sobrecarregados. Para saber mais sobre essas opções, consulte Sobrecarregar opções de repetição no guia Configurar operações CRUD.Descontinua os seguintes métodos
bson.son.SON:has_key(): use o operadorin.iterkeys(): em vez disso, usedict.keys().itervalues(): em vez disso, usedict.values().
Novidades no 4.16
A versão PyMongo v4.16 inclui as seguintes novas funcionalidades:
Reduz o risco de vazamentos de dados confidenciais removendo documentos inválidos de
bson.errors.InvalidDocumentmensagens de erro.Atualiza o requisito de
dnspythondo driver para v2.6.1 ou posterior.Atualiza o suporte do Zstandard das seguintes maneiras:
Se você usar o Python v3.14 ou posterior, o PyMongo usará a biblioteca padrão.
Se você utilizar versões anteriores do Python, o PyMongo utilizará o pacote
backports.zstd.
Atualiza o tipo de retorno para os seguintes métodos para incluir
None. Você pode chamar esses métodos em uma instânciaCollectionouAsyncCollection.find_one_and_update()find_one_and_replace()find_one_and_delete()
Adiciona suporte para converter arrays NumPy dimensionais 1para o tipo
BinaryVector.Impede que a classe
ClientEncryptioncarregue a bibliotecacrypt_sharedautomaticamente se outra instância já estiver carregada. Isso resolve o seguinte erro:MongoCryptError: An existing crypt_shared library is loaded by the application
4.15: quais as novidades
A versão PyMongo v4.15 inclui as seguintes novas funcionalidades:
Adiciona suporte experimental para queries de prefixo, sufixo e substring de Queryable Encryption . Estas funcionalidades exigem
pymongocrypt1.16 ou posterior. Para saber mais sobre a QE, consulte criptografia em execução.Observação
Recurso experimental
As queries de prefixo, sufixo e substring do Queryable Encryption são instáveis, e sua segurança não é garantida até que estejam geralmente disponíveis (GA). Use-os apenas em cargas de trabalho experimentais.
Adiciona suporte para codificação e decodificação de valores BSON
Decimal128para valores Pythondecimal.Decimalusando a classebson.codec_options.TypeRegistry. O exemplo a seguir mostra como codificar um valorDecimal128para um valordecimal.Decimalusando a classebson.decimal128.DecimalEncoder:opts = CodecOptions(type_registry=TypeRegistry([DecimalEncoder()]))bson.encode({"d": decimal.Decimal('1.0')}, codec_options=opts)Adiciona suporte para discos Windows ARM64.
O que há de novo em 4.14
Aviso
Mudanças de última hora
PyMongo v4.14 contém alterações significativas. Para obter mais informações, consulte a versão 4.14 das Alterações significativas.
A versão PyMongo v4.14 inclui as seguintes novas funcionalidades:
Adiciona suporte inicial para Python 3.14, incluindo recursos de threading gratuito. O driver ainda não é compatível com as seguintes funcionalidades com o Python 3.14:
Subintérpretes (
concurrent.interpreters)Threading grátis com criptografia
mod_wsgi
Remove o suporte experimental para threading gratuito com o Python 3.13.
Adiciona as seguintes propriedades na classe
bson.codec_options.TypeRegistry:.codecs: fornece acesso aos codecs específicos do tipo de um objetoTypeRegistry.fallback_encoder: fornece acesso a um codificador de fallback de um objetoTypeRegistry
Adiciona o método
append_metadata()às classesMongoClienteAsyncMongoClient. Você pode usar esse método para enviar metadados do cliente para o servidor sob demanda.Melhora o desempenho de seleção do servidor ao usar referência de leitura primária.
4.13: quais as novidades
A versão PyMongo v4.13 inclui as seguintes novas funcionalidades:
A API do PyMongo Async está geralmente disponível. Para saber como migrar para a API PyMongo Async a partir do driver do PyMongo ou da biblioteca Motor, consulte o guia Migrar para o PyMongo Async.
Corrige um erro onde
WriteConcern()não pôde ser avaliado ao utilizarw="majority".
Para ver uma lista completa de problemas resolvidos nesta versão, consulte as notas de versão do Jira.
4.12: quais as novidades
A versão PyMongo v4.12 inclui as seguintes novas funcionalidades:
Adiciona suporte para configurar a vida útil do cache de DEK usando o argumento
key_expiration_msparaAutoEncryptionOpts.Adiciona suporte para
$lookupem CSFLE e QE para o MongoDB Server 8.1 e posterior.Adiciona os métodos
gridfs.asynchronous.grid_file.AsyncGridFSBucket.rename_by_name()egridfs.grid_file.GridFSBucket.rename_by_name(). Você pode usar esses métodos para renomear arquivos com mais desempenho com várias revisões.Adiciona os métodos
gridfs.asynchronous.grid_file.AsyncGridFSBucket.delete_by_name()egridfs.grid_file.GridFSBucket.delete_by_name(). Você pode usar esses métodos para obter uma exclusão mais eficiente de arquivos com várias revisões.AsyncMongoClientos objetos não executam mais resolução de DNS para connection stringsmongodb+srv://na criação. Para evitar o bloqueio do loopasyncio, o PyMongo agora adia a resolução até que o cliente seja conectado pela primeira vez.Adiciona suporte de sugestão de índice aos métodos
pymongo.asynchronous.collection.AsyncCollection.distinct()epymongo.collection.Collection.distinct().Descontinua o parâmetro
hedgepara as preferências de leituraPrimaryPreferred,Secondary,SecondaryPreferredeNearest. O suporte parahedgeserá removido no PyMongo v5.0.Remove o suporte PyOpenSSL do driver PyMongo Async.
Permite nomes de host SRV válidos com menos de 3 partes.
Novidades no 4.11
Aviso
Mudanças de última hora
PyMongo v4.11 contém alterações significativas. Para obter mais informações, consulte a versão 4.11 das Alterações significativas.
A versão PyMongo v4.11 inclui as seguintes novas funcionalidades:
Adiciona suporte para CPython de thread livre ao executar Python v3.13+. Para obter mais informações sobre threading gratuito, consulte a documentação do Python.
A criptografia em uso requer
pymongocryptv1.12 ou posterior.Os métodos
MongoClient.address()eAsyncMongoClient.address()bloqueiam corretamente quando chamados em clientes não conectados.Adiciona suporte
__repr__para as classesIndexModeleSearchIndexModel.Adiciona um parâmetro
sortaos seguintes métodos:Collection.update_one()Collection.replace_one()operations.UpdateOne()operations.UpdateMany()
Os métodos
MongoClient.bulkWrite()eAsyncMongoClient.bulk_write()lançam um erro de erro se você usá-los com gravações não reconhecidas quando as opçõesorderedouverboseResultsestiverem definidas comoTrue.Corrige um bug que fazia com que
DatetimeMSfosse codificado incorretamente como'{"$date": "X"}'em vez de'{"$date": X}'ao usar a representação de data e hora do JSON estendido do MongoDB legado .Corrige um erro que fazia com que o método
bson.json_util.loads()gerasse umIndexErrorem vez de umValueErrorao analisar um valor de$dateinválido.
Novidades no 4.10
A versão PyMongo v4.10 inclui as seguintes novas funcionalidades:
Adiciona suporte provisório para um novo subtipo binário de BSON (9), que pode ser usado para armazenamento e recuperação eficientes de vetores usando os métodos
bson.binary.Binary.from_vector()ebson.binary.Binary.as_vector(). O suporte para o subtipo 9 de BSON está em versão beta e está sujeito a alterações antes da versão geralmente disponível.Adiciona
"c"ao campo de metadados do clientedriver.namequando um aplicação usa a extensão C.Corrige um bug que pode causar impasse
AsyncMongoClient.
Novidades no 4.9
Aviso
Mudanças de última hora
PyMongo v4.9 contém alterações significativas. Para obter mais informações, consulte a versão 4.9 das Alterações significativas.
A versão PyMongo v4.9 inclui as seguintes novas funcionalidades:
Adiciona suporte para MongoDB Server 8.0 e Python 3.13.
Adiciona suporte para queries de intervalo de Queryable Encryption . Para usar esse recurso, seu aplicativo deve se conectar ao MongoDB Server 8.0 ou posterior. Para obter mais informações sobre Queryable Encryption, consulte Queryable Encryption no manual do MongoDB Server .
Adiciona uma nova API assíncrona experimental como substituição para o Motor. Essa API está em versão beta e está sujeita a alterações antes da versão geralmente disponível.
4.8: quais as novidades
Aviso
Mudanças de última hora
PyMongo v4.8 contém alterações significativas. Para obter mais informações, consulte a versão 4.8 das Alterações significativas.
A versão PyMongo v4.8 inclui as seguintes novas funcionalidades:
Implementação da automação segura do ciclo de vida de desenvolvimento de software (SSDLC) no processo de lançamento. As versões do Github incluem uma lista de materiais de software (SBOM) e arquivos de assinatura correspondentes aos arquivos de distribuição lançados no PyPI.
Em objetos do tipo
bson.binary.Binary, o métodorepr()é redigido quando o subtipo binário éSENSITIVE_SUBTYPE(8).Foi corrigido um bug nos change streams em que os campos
startAtOperationTimeeresumeTokenpodiam ser adicionados a uma nova tentativa, o que fazia com que a nova tentativa falhasse.No Windows, os metadados de handshake foram alterados de
os.nameparaWindowspara melhorar o tempo de importação.Desempenho aprimorado de operações
MongoClient, especialmente quando o driver está executando muitas operações simultaneamente.Foi adicionado um fallback ao módulo stdlib
sslse a importação do módulopyopensslfalhar com umAttributeError.
O que há de novo em 4.7
Aviso
Mudanças de última hora
PyMongo v4.7 contém alterações significativas. Para obter mais informações, consulte a versão 4.7 das Alterações significativas.
A versão PyMongo v4.7 inclui as seguintes novas funcionalidades:
Adicionado o
Hello.connection_id, CommandStartedEvent.server_connection_id, CommandSucceededEvent.server_connection_id e CommandFailedEvent.server_connection_id propriedades.Suporte adicionado para sufixos de nome para fornecedores de KMS (KMS) para criptografia no nível do campo do lado do cliente (CSFLE). Este recurso requer
pymongocryptv1.9+ elibmongocryptv1.9+. Para obter mais informações, consulte a documentação da API para a classe AutoEncryptionOpts.Melhorou o desempenho da codificação de documentos BSON para JSON.
Os métodos
ClientEncryption.encrypt()eClientEncryption.encrypt_expression()agora permitem que o argumentokey_idseja passado como um objetoUUID.Aumentar um objeto
RawBSONDocumentcontendo um valorCodenão causa mais um erro.Correção de um bug no Python 3.12 onde a mensagem de erro
RuntimeError: can't create new thread at interpreter shutdownpode ser gravada emstderrquando um threadMongoClientcomeça quando o interpretador Python está sendo desligado.Corrigido um bug em que as instâncias
Int64nem sempre podiam ser codificadas pela bibliotecaorjson. Códigos como o exemplo a seguir agora são executados corretamente:
>>> import orjson>>> from bson import json_util>>> orjson.dumps({'a': Int64(1)}, default=json_util.default, option=orjson.OPT_PASSTHROUGH_SUBCLASS)