Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.

Notas de versão

Descubra as novidades de cada versão:

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.InterpreterPoolExecutor no 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_callback nas classe AutoEncryptionOpts, ClientEncryption e AsyncClientEncryption, ou passe o assistente HTTPProxyKMSConnect ou AsyncHTTPProxyKMSConnect.

  • Adiciona o argumento de palavra-chave srv_host_validator às classes MongoClient e AsyncMongoClient, uma alternativa à opção de string srvAllowedHostsSuffix para 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 com srvAllowedHostsSuffix.

  • Permite que srvAllowedHostsSuffix seja um rótulo único reservado para uso privado ou especial, como localhost, test ou internal.

  • 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() e AsyncMongoClient.append_metadata() agora comparam todo o objeto DriverInfo quando detectam duplicatas, e os campos driver.name e driver.version agora 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 gerar InvalidBSON. Isso agora corresponde à extensão C.

Para saber mais sobre esta versão, consulte as notas de versão v4.19 no Github.

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.

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.

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.

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-chave MongoClient ou AsyncMongoClient. Ao se conectar usando uma string de conexão mongodb+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 libmongocrypt v1.20.0 ou posterior. Esta versão traz as seguintes alterações relacionadas:

    • Adiciona o valor Algorithm.STRING e a classe StringOpts, que substituem Algorithm.TEXTPREVIEW e TextOpts. Os valores substituídos estão obsoletos.

    • Adiciona os tipos de query QueryType.PREFIX, QueryType.SUFFIX e QueryType.SUBSTRING. Os tipos de query correspondentes PREFIXPREVIEW, SUFFIXPREVIEW e SUBSTRINGPREVIEW continuam disponíveis para uso experimental com versões do MongoDB Server anteriores à v9.0.

    • Adiciona o parâmetro string_opts aos métodos ClientEncryption.encrypt() e AsyncClientEncryption.encrypt(), e descontinua o parâmetro text_opts. Cada versão do pymongocrypt aceita apenas um desses dois nomes de parâmetro. O driver gera um ConfigurationError se você passar text_opts com pymongocrypt v1.19 ou posterior, string_opts com pymongocrypt v1.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) contra mongos v7.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 objeto RawBSONDocument quando 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 MongoClient e AsyncMongoClient.

  • Valida o tamanho descompactado de uma mensagem OP_COMPRESSED em relação a max_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 $timestamp que contêm campos diferentes de t e i.

  • Corrige um bug no Windows e no macOS ao usar o PyOpenSSL, no qual as variáveis de ambiente SSL_CERT_FILE e SSL_CERT_DIR foram mescladas com o sistema operacional ou o armazenamento de certificados certifi em 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.

A versão PyMongo v4.17 inclui as seguintes novas funcionalidades:

  • Adiciona gerenciadores de contexto ClientSession.bind() e AsyncClientSession.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étodo bind(), 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_retries e enable_overload_retargeting para 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 operador in.

    • iterkeys(): em vez disso, use dict.keys().

    • itervalues(): em vez disso, use dict.values().

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.InvalidDocument mensagens de erro.

  • Atualiza o requisito de dnspython do driver para v2.6.1 ou posterior.

  • Remove o suporte Eventlet. Se o seu aplicativo usar o Eventlet, migre para um modelo de simultaneidade compatível, como gevent ou asyncio.

  • 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ância Collection ou AsyncCollection .

    • 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 ClientEncryption carregue a biblioteca crypt_shared automaticamente se outra instância já estiver carregada. Isso resolve o seguinte erro:

    MongoCryptError: An existing crypt_shared library is loaded by the application

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 pymongocrypt 1.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 Decimal128 para valores Python decimal.Decimal usando a classe bson.codec_options.TypeRegistry . O exemplo a seguir mostra como codificar um valor Decimal128 para um valor decimal.Decimal usando a classe bson.decimal128.DecimalEncoder :

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

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 objeto TypeRegistry

    • .fallback_encoder: fornece acesso a um codificador de fallback de um objeto TypeRegistry

  • Adiciona o método append_metadata() às classes MongoClient e AsyncMongoClient. 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.

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 utilizar w="majority".

Para ver uma lista completa de problemas resolvidos nesta versão, consulte as notas de versão do Jira.

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_ms para AutoEncryptionOpts.

  • Adiciona suporte para $lookup em CSFLE e QE para o MongoDB Server 8.1 e posterior.

  • Adiciona os métodos gridfs.asynchronous.grid_file.AsyncGridFSBucket.rename_by_name() e gridfs.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() e gridfs.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.

  • AsyncMongoClient os objetos não executam mais resolução de DNS para connection strings mongodb+srv:// na criação. Para evitar o bloqueio do loop asyncio, 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() e pymongo.collection.Collection.distinct().

  • Descontinua o parâmetro hedge para as preferências de leitura PrimaryPreferred, Secondary, SecondaryPreferred e Nearest. O suporte para hedge será 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.

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 pymongocrypt v1.12 ou posterior.

  • Os métodos MongoClient.address() e AsyncMongoClient.address() bloqueiam corretamente quando chamados em clientes não conectados.

  • Adiciona suporte __repr__ para as classes IndexModel e SearchIndexModel .

  • Adiciona um parâmetro sort aos seguintes métodos:

    • Collection.update_one()

    • Collection.replace_one()

    • operations.UpdateOne()

    • operations.UpdateMany()

  • Os métodos MongoClient.bulkWrite() e AsyncMongoClient.bulk_write() lançam um erro de erro se você usá-los com gravações não reconhecidas quando as opções ordered ou verboseResults estiverem definidas como True.

  • Corrige um bug que fazia com que DatetimeMS fosse 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 um IndexError em vez de um ValueError ao analisar um valor de $date inválido.

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() e bson.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 cliente driver.name quando um aplicação usa a extensão C.

  • Corrige um bug que pode causar impasse AsyncMongoClient .

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.

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étodo repr() é redigido quando o subtipo binário é SENSITIVE_SUBTYPE (8).

  • Foi corrigido um bug nos change streams em que os campos startAtOperationTime e resumeToken podiam 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.name para Windows para 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 ssl se a importação do módulo pyopenssl falhar com um AttributeError.

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:

  • 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 pymongocrypt v1.9+ e libmongocrypt v1.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() e ClientEncryption.encrypt_expression() agora permitem que o argumento key_id seja passado como um objeto UUID .

  • Aumentar um objeto RawBSONDocument contendo um valor Code nã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 shutdown pode ser gravada em stderr quando um thread MongoClient começa quando o interpretador Python está sendo desligado.

  • Corrigido um bug em que as instâncias Int64 nem sempre podiam ser codificadas pela biblioteca orjson. 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)