Descubra as novidades de cada versão:
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 as atualizações de segurança do MongoDB , consulte Boletins de segurança do MongoDB .
Para saber mais sobre esta versão, consulte as 418v..2 Notas de versão 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 as atualizações de segurança do MongoDB , consulte Boletins de segurança do MongoDB .
Para saber mais sobre esta versão, consulte as 418v..1 Notas de versão 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. Quando você se conecta usando uma string de conexãomongodb+srv://, essa opção substitui o requisito padrão de que os hosts retornados pelo registro SRV tenham o mesmo domínio pai que o nome do host semente. O sufixo não pode ser um sufixo público, conforme listado na Lista de sufixos públicos.Adiciona suporte de disponibilidade geral para queries de prefixo, sufixo e substring de Queryable Encryption no MongoDB Server v9.0 ou posterior. Essas queries exigem
libmongocryptv1.20.0 ou posterior. Esta versão faz 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 queryPREFIXPREVIEW,SUFFIXPREVIEWeSUBSTRINGPREVIEWcorrespondentes permanecem 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 substitui o parâmetrotext_opts. Cada versãopymongocryptaceita apenas um desses dois nomes de parâmetro. O driver gera umConfigurationErrorse você passartext_optscompymongocryptv1.19 ou posterior,string_optscompymongocryptv1.16 a v1.18, ou ambos os nomes de uma só vez.
Melhora o desempenho da conexão TLS reutilizando sessões TLS entre conexões com o mesmo servidor, o que evita uma negociação completa em cada nova conexão. Os clientes síncronos suportam a retomada da sessão em todas as versões do Python, e os clientes assíncronos oferecem suporte à retomada da sessão no Python v3.11 ou posterior.
Melhora o desempenho do Intelligent Workload Management, repetindo erros de sobrecarga somente quando não se espera que uma nova tentativa piore as condições do servidor .
Adiciona suporte para cursores de escape (
CursorType.EXHAUST) contramongosv7.1 ou posterior.Melhora o desempenho e o uso de memória da decodificação de documentos grandes para objetos
bson.raw_bson.RawBSONDocumente melhora o desempenho da decodificação preguiçosa de um objetoRawBSONDocumentquando a extensão C está disponível.Edita propriedades de mecanismo de autenticação potencialmente sensíveis, como tokens de sessão da AWS, a partir das representações de string dos objetos
MongoClienteAsyncMongoClient.Valida o tamanho descompactado de uma mensagem
OP_COMPRESSEDem relaçãomax_message_size, o que evita o esgotamento da memória a partir de respostas de servidor compactadas criadas maliciosamente.Corrige um possível leitura fora dos limites na extensão C ao decodificar uma array de documentos BSON. Se um documento incorporado declarar um comprimento que excede os bytes restantes na array, o driver agora gerará 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 com o PyOpenSSL, no qual as variáveis de ambiente
SSL_CERT_FILEeSSL_CERT_DIReram mescladas com o sistema operacional ou o armazenamento de certificadoscertifiem vez de substituí-lo.Descontinua o suporte PyPy. O suporte será removido em uma versão futura.
Para saber mais sobre esta versão, consulte as Notas de4 versão do18 v. 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 da 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ário9 de BSON (), que pode ser usado para armazenamento e recuperação eficientes de vetores usando os
bson.binary.Binary.from_vector()bson.binary.Binary.as_vector()métodos e. O suporte para o subtipo de BSON 9 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)