Menu Docs
Página inicial do Docs
/ / /
PyMongo

Migrar do Motor para o PyMongo Async

Nesta página

  • Visão geral
  • Migrar do Motor
  • Alterações na assinatura do método
  • Informações adicionais

Importante

O driver PyMongo Async é experimental e não deve ser usado em ambientes de produção. Classes, métodos e comportamentos descritos neste guia podem mudar antes da versão completa. Se você encontrar algum problema com o PyMongo Async, saiba como denunciá-lo na página deajuda .

O driver PyMongo Async é uma unificação do PyMongo e da biblioteca Motor. Neste guia, você pode identificar as alterações que deve fazer para migrar um aplicação do Motor para o driver PyMongo Async.

O driver PyMongo Async funciona de forma semelhante à biblioteca Motor, mas permite latência e taxa de transferência aprimoradas devido ao uso direto do Python Asyncio em vez de delegar trabalho a um pool de threads. Na maioria dos casos, você pode migrar diretamente os aplicativos Motor existentes para o PyMongo Async usando AsyncMongoClient no lugar de MotorClient e alterando as declarações de importação do aplicativo para importar de pymongo.

O exemplo a seguir mostra a diferença nas importações para usar um cliente para operações de leitura e escrita no Motor em comparação com o PyMongo Async:

# Motor client import
from motor.motor_asyncio import AsyncIOMotorClient
# PyMongo Async client import
from pymongo import AsyncMongoClient

Para ver uma lista dos métodos assíncronos disponíveis no driver do PyMongo Async, consulte a seção Métodos assíncronos no guia do PyMongo para o PyMongo Async.

A seção a seguir mostra as alterações na assinatura do método que você deve implementar em seu aplicação ao migrar do driver Motor para o PyMongo Async.

As seguintes assinaturas de método do Motor se comportam de forma diferente no driver PyMongo Async:

  • AsyncMongoClient.__init__() não aceita um parâmetro io_loop .

  • AsyncCursor.each() não existe no driver PyMongo Async.

  • MotorGridOut.stream_to_handler() não existe no driver PyMongo Async.

  • AsyncCursor.to_list(0) não é válido no driver PyMongo Async. Em vez disso, use to_list(None) .

  • MongoClient é thread seguro e pode ser usado por muitos threads, no entanto, um AsyncMongoClient não é seguro para threads e deve ser usado apenas por um único loop de eventos.

Para saber mais sobre Python assíncrono, consulte a documentação do Python Asyncio.

Voltar

Atualizar versões do PyMongo