Motor (Driver assíncrono)
Nesta página
Introdução
Boas-vindas ao site de documentação do Motor, o driver oficial do MongoDB para aplicativos Python assíncronos. Baixe usando pip ou defina um projeto executável seguindo nossos tutoriais.
Dica
Se não for necessário acessar o MongoDB de forma não bloqueante ou a partir de co-rotinas, recomendamos que você use o driver PyMongo.
Siga os links abaixo para ler blog posts que descrevem casos de uso específicos para o driver Motor:
Instalação
Você deve instalar o módulo driver Motor para disponibilizá-lo para seu aplicativo Python. Recomendamos usar o pip para instalar o Motor.
O comando a seguir demonstra como você pode instalar a versão mais recente do módulo usando a linha de comando:
python -m pip install motor
Para obter mais informações sobre os requisitos e outros métodos de instalação, consulte a documentação Instalação do Motor.
Ligar ao MongoDB Atlas
Você pode usar o seguinte trecho de conexão para testar sua conexão com sua implantação do MongoDB no Atlas usando a estrutura assíncrona asyncio
:
import asyncio from motor.motor_asyncio import AsyncIOMotorClient from pymongo.server_api import ServerApi async def ping_server(): # Replace the placeholder with your Atlas connection string uri = "<connection string>" # Set the Stable API version when creating a new client client = AsyncIOMotorClient(uri, server_api=ServerApi('1')) # Send a ping to confirm a successful connection try: await client.admin.command('ping') print("Pinged your deployment. You successfully connected to MongoDB!") except Exception as e: print(e) asyncio.run(ping_server())
Este trecho de conexão usa a funcionalidade API estável, que você pode habilitar ao usar o driver Motor v. 2.5 e mais recente para se conectar ao servidor MongoDB v. 5.0 e mais recente. Ao usar esse recurso, você pode atualizar seu driver ou servidor sem se preocupar com problemas de compatibilidade com versões anteriores de qualquer comando coberto pela API estável.
Para saber mais sobre a funcionalidade Stable API, consulte Stable API no manual do servidor.
Observação
A partir de fevereiro de 2022, a API versionada é conhecida como API estável. Todos os conceitos e recursos permanecem os mesmos com esta mudança de nomenclatura.
Conecte-se ao Atlas MongoDB sem a API estável
Se estiver usando uma versão do MongoDB ou do driver não compatível com a funcionalidade Stable API, você pode usar o seguinte trecho de código para testar sua conexão com o MongoDB deployment no Atlas:
import asyncio from motor.motor_asyncio import AsyncIOMotorClient async def ping_server(): # Replace the placeholder with your Atlas connection string uri = "<connection string>" # Create a new client and connect to the server client = AsyncIOMotorClient(uri) # Send a ping to confirm a successful connection try: await client.admin.command('ping') print("Pinged your deployment. You successfully connected to MongoDB!") except Exception as e: print(e) asyncio.run(ping_server())
Se você estiver utilizando a biblioteca assíncrona do tornado
, você poderá utilizar o seguinte código para conectar ao seu MongoDB deployment:
import tornado import motor async def ping_server(): # Replace the placeholder with your Atlas connection string uri = "<connection string>" # Set a 5-second connection timeout when creating a new client client = motor.motor_tornado.MotorClient(uri, serverSelectionTimeoutMS=5000) # Send a ping to confirm a successful connection try: await client.admin.command('ping') print("Pinged your deployment. You successfully connected to MongoDB!") except Exception as e: print(e) tornado.ioloop.IOLoop.current().run_sync(ping_server)
Conecte-se a um servidor MongoDB em sua máquina local
Se você precisar executar um servidor MongoDB em seu computador local para fins de desenvolvimento, em vez de usar um cluster do Atlas, será necessário concluir o seguinte:
Baixe a versão Comunidade ou Enterprise do MongoDB Server.
Instale e configure o servidor MongoDB.
Inicie o servidor.
Importante
Sempre proteja seu servidor do MongoDB contra ataques maliciosos. Consulte nossa Lista de verificação de segurança para obter uma lista de recomendações de segurança.
Depois de iniciar com êxito o servidor MongoDB, especifique a connection string no código de conexão do driver.
Se o servidor MongoDB estiver sendo executado localmente, você poderá usar a connection string "mongodb://localhost:<port>"
, em que <port>
é o número da porta que você configurou no servidor para escutar as conexões de entrada.
Se você precisar especificar um nome de host ou endereço IP diferente, consulte a entrada do Manual do servidor sobre strings de conexão.
Para testar se você pode se conectar ao servidor, substitua a string de conexão no exemplo de código Connect to MongoDB Atlas e execute-a.
Compatibilidade
Compatibilidade com o MongoDB
A tabela de compatibilidade a seguir especifica a versão recomendada ou versões do driver Motor (Python assíncrono) para usar com uma versão específica do MongoDB.
A primeira coluna lista a versão do driver.
Importante
O MongoDB garante a compatibilidade entre o MongoDB Server e os drivers por três anos após a data de fim da vida útil (EOL) da versão do servidor. Para saber mais sobre a versão do MongoDB e as datas de EOL, consulte Agendamentos do ciclo de vida do software MongoDB.
Legenda da tabela de compatibilidade
Icon | Explicação |
---|---|
✓ | Todas as funcionalidades são suportadas. |
⊛ | A versão Driver funcionará com a versão MongoDB, mas nem todos os novos recursos MongoDB são suportados. |
Sem marca | A versão Driver não é testada com a versão MongoDB. |
Versão do driver Motor | MongoDB 8.0 | MongoDB 7.0 | MongoDB 6.0 | MongoDB 5.0 | MongoDB 4.4 | MongoDB 4.2 | MongoDB 4.0 | MongoDB 3.6 |
---|---|---|---|---|---|---|---|---|
3.6 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
3.2 a 3.5 | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
3.1 | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
3.0 | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ |
O driver não suporta versões mais antigas do MongoDB.
Compatibilidade de linguagem
A tabela de compatibilidade a seguir especifica a(s) versão(ões) recomendada(s) do driver Motor (Python assíncrono) para usar com uma versão específica do Python.
A primeira coluna lista a(s) versão(ões) do driver.
Versão do driver Motor | Python 3.13 | Python 3.12 | Python 3.11 | Python 3.10 | Python 3.9 | Python 3.8 | Python 3.7 |
---|---|---|---|---|---|---|---|
3.6 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
3.5 | ✓ | ✓ | ✓ | ✓ | ✓ | ||
3.3 a 3.4 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
3.1 a 3.2 | ✓ | ✓ | ✓ | ✓ | ✓ | ||
3.0 | ✓ | ✓ | ✓ | ✓ |
Motor 3.6 envolve PyMongo 4.9
Motor 3.5 envolve PyMongo 4.5 para 4.8
Motor 3.3 e 3.4 wrap PyMongo 4.5
Motor 3.2 envolve PyMongo 4.4+
Motor 3.1 envolve PyMongo 4.2+
Motor 3.0 envolve PyMongo 4.1+
Observação
Para suporte a asyncio, o Motor requer Python 3.4+ ou Python 3.3 com o pacote asyncio do PyPI.
A versão Motor 2.3 ou mais recente é compatível com Windows.
Para obter mais informações sobre como ler as tabelas de compatibilidade, consulte nosso guia em tabelas de compatibilidade do MongoDB.
Como obter ajuda
Faça perguntas em nossos fóruns da MongoDB Community.
Visite nossos Canais de Suporte.
Consulte o JIRA para levantar problemas ou solicitar recursos.