Menu Docs

Notas de versão

Descubra as novidades de cada versão:

De acordo com os agendamentos do ciclo de vida do software MongoDB, uma próxima versão secundária do PyMongo aumentará a versão mínima do MongoDB Server 4.0 de 4.2 para. O PyMongo não suportará mais o MongoDB Server 4.0. Para saber como atualizar sua versão do driver, consulte o guia Atualizar versões do PyMongo.

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.

  • Os objetos AsyncMongoClient 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:

  • 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 de nível de campo do lado do cliente (CSFLE). Esta funcionalidade requer pymongocrypt v1.9+ e libmongocrypt v1.9+. Para obter mais informações, consulte a documentação da API para o AutoEncryptionOpts aula.

  • 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 Int64 as instâncias nem sempre podiam ser codificadas por 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)