Visão geral
Neste guia, você aprenderá a usar uma string de conexão e uma instância Client para se conectar a diferentes tipos de sistemas do MongoDB .
Ligar a uma Implementação Atlas
Para se conectar a uma MongoDB deployment no Atlas, inclua os seguintes elementos em sua connection string:
URL do seu cluster Atlas
Nome de usuário do MongoDB
Senha do MongoDB
Em seguida, construa uma instância do Client com sua string de conexão.
Dica
Siga oguia de conexão do driver do Atlas para recuperar sua connection string.
Ao se conectar ao Atlas, recomendamos o uso da opção de cliente Stable API para evitar alterações significativas quando o Atlas for atualizado para uma nova versão do MongoDB Server. Para saber mais sobre o recurso de API estável, consulte o guia de API estável.
O código a seguir mostra como criar um cliente que usa uma connection string do Atlas e a versão da API estável, conecta-se ao MongoDB e verifica se a conexão foi bem-sucedida. Selecione nas guias Asynchronous API ou Synchronous API abaixo para obter amostras de código de conexão correspondentes.
Dica
Para saber mais sobre tempos de execução assíncronos e síncronos, consulte o guia APIs assíncronas e síncronas.
use mongodb::{ bson::doc, options::{ ClientOptions, ServerApi, ServerApiVersion }, Client }; async fn main() -> mongodb::error::Result<()> { // Replace the placeholder with your Atlas connection string let uri = "<connection string>"; let mut client_options = ClientOptions::parse(uri).await?; // Set the server_api field of the client_options object to Stable API version 1 let server_api = ServerApi::builder().version(ServerApiVersion::V1).build(); client_options.server_api = Some(server_api); // Create a new client and connect to the server let client = Client::with_options(client_options)?; // Send a ping to confirm a successful connection client.database("admin").run_command(doc! { "ping": 1 }).await?; println!("Pinged your deployment. You successfully connected to MongoDB!"); Ok(()) }
use mongodb::{ bson::doc, options::{ ClientOptions, ServerApi, ServerApiVersion }, sync::Client }; fn main() -> mongodb::error::Result<()> { // Replace the placeholder with your Atlas connection string let uri = "<connection string>"; let mut client_options = ClientOptions::parse(uri).run()?; // Set the server_api field of the client_options object to Stable API version 1 let server_api = ServerApi::builder().version(ServerApiVersion::V1).build(); client_options.server_api = Some(server_api); // Create a new client and connect to the server let client = Client::with_options(client_options)?; // Send a ping to confirm a successful connection client.database("admin").run_command(doc! { "ping": 1 }).run()?; println!("Pinged your deployment. You successfully connected to MongoDB!"); Ok(()) }
Outras maneiras de se conectar ao MongoDB
Se precisa se conectar a uma única instância ou a um conjunto de réplicas do Servidor MongoDB que não esteja hospedado no Atlas, consulte as seções a seguir para saber como.
Conecte-se a um servidor MongoDB em sua máquina local
Se você precisa executar o servidor MongoDB em sua máquina local para fins de desenvolvimento, você deve fazer o seguinte:
Siga o tutorial Instale o MongoDB para instalar o MongoDB Server em sua máquina. Selecione o tutorial de instalação apropriado de acordo com sua máquina e seu sistema operacional.
Depois de concluir a instalação, inicie o servidor.
Importante
Sempre proteja seu servidor contra ataques maliciosos. Consulte o Checklist de segurança para obter uma lista de recomendações de segurança.
Depois de iniciar com sucesso o MongoDB Server, conecte-se à sua instância local seguindo estas etapas:
Substitua a cadeia de conexão armazenada na variável
urino exemplo anterior pela cadeia de conexão da sua instância local do MongoDB.Se você estiver executando o MongoDB Server localmente, use esta cadeia de conexão para acessá-lo:
mongodb://localhost:<port> Nessa cadeia de conexão,
<port>é o número da porta na qual você configurou o servidor para escutar conexões recebidas.Execute o código de conexão. Se o código for executado com sucesso, você verá a seguinte saída em seu console:
Pinged your deployment. You successfully connected to MongoDB!
Dica
Para saber mais sobre cadeias de conexão e formatos personalizados, consulte cadeias de conexão no manual do servidor.
Conectar a um conjunto de réplicas
Uma implantação do conjunto de réplicas MongoDB é um grupo de instâncias conectadas, ou nós, onde os nós armazenam o mesmo conjunto de dados. Esta configuração de instâncias fornece redundância de dados e alta disponibilidade de dados.
Para conectar a uma implantação do conjunto de réplicas, especifique o nome do host e os números de porta de cada instância, separados por vírgulas, e o nome do conjunto de réplicas como o valor do parâmetro replicaSet na cadeia de conexão.
No exemplo a seguir, os nomes de host são host1, host2 e host3, e os números de porta são todos 27017. O nome do conjunto de réplicas é myRS. O código a seguir mostra o URI de conexão para o conjunto de réplicas com essas especificações:
mongodb://host1:27017,host2:27017,host3:27017/?replicaSet=myRS
Ao se conectar a um conjunto de réplicas, o driver realiza as seguintes ações por padrão:
Descobre todos os membros do conjunto de réplicas quando recebe o endereço de qualquer membro.
Envia operações para o membro apropriado, como instruções para escrever no nó primário . Para saber mais sobre o conjunto de réplicas primário, consulte Conjunto de réplicas primário no manual do servidor MongoDB.
Dica
Você só precisa especificar um host para se conectar a um conjunto de réplicas. No entanto, para garantir a conectividade quando o host especificado não estiver disponível, forneça a lista completa de hosts.
Conexão direta
Para forçar operações no host designado no URI de conexão, especifique a opção directConnection. As conexões diretas exibem o seguinte comportamento:
Não oferecem suporte a strings SRV.
Falham nas gravações quando o host especificado não é o primário.
Eles exigem que você especifique uma preferência de leitura secundária quando o host especificado não é o nó principal. Para saber mais sobre esses nós do conjunto de réplicas, consulte Nós secundários do conjunto de réplicas no manual do servidor.
Observação
Conjunto de réplicas no Docker
Quando um conjunto de réplicas é executado no Docker, ele pode expor apenas um endpoint MongoDB . Nesse caso, o conjunto de réplicas não é detectável. Especificar directConnection=false em seu URI de conexão ou deixar essa opção sem definir pode impedir que seu aplicação se conecte a ele.
Em um ambiente de teste ou desenvolvimento, é possível conectar-se ao conjunto de réplicas especificando directConnection=true. Em um ambiente de produção, recomendamos configurar o cluster para que cada instância do MongoDB seja acessível fora da rede virtual do Docker.
Conecte-se com a DNS Service Discovery
Para usar a descoberta de serviços DNS para procurar o registro DNS SRV do serviço ao qual você está se conectando, especifique o formato de conexão SRV em sua string de conexão. Se você especificar este formato, o driver Rust fará uma nova varredura automaticamente em busca de novos hosts. Seu sistema pode adicionar hosts à topologia sem exigir alterações na configuração do cliente .
O código a seguir mostra uma string de conexão que usa o formato de conexão SRV:
let uri = "mongodb+srv://<hostname>/";
Para saber mais sobre o formato de conexão SRV, consulte a entrada Formato de conexão SRV no manual do MongoDB Server.
Documentação da API
Para saber mais sobre como criar uma Client instância com o driver Rust, consulte a documentação da API para o cliente.