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.
Menu Docs

Notas de versão

Descubra as novidades de cada versão:

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.

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.

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. 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 libmongocrypt v1.20.0 ou posterior. Esta versão faz as seguintes alterações relacionadas:

    • Adiciona o valor Algorithm.STRING e a classeStringOpts , 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 PREFIXPREVIEW, SUFFIXPREVIEW e SUBSTRINGPREVIEW correspondentes permanecem 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 substitui o parâmetro text_opts. Cada versão 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 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) contra mongos v7.1 ou posterior.

  • Melhora o desempenho e o uso de memória da decodificação de documentos grandes para objetos bson.raw_bson.RawBSONDocument e melhora o desempenho da decodificação preguiçosa de um objeto RawBSONDocument quando 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 MongoClient e AsyncMongoClient.

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

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

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 da 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á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 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)