Visão geral
Neste guia, você pode aprender como usar uma string de conexão e objeto MongoClient
para conectar a diferentes tipos de sistemas MongoDB.
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, passe sua connection string para o construtor MongoClient
.
Dica
Siga oguia de conexão do driver do Atlas para recuperar sua connection string.
Ao se conectar ao Atlas, recomendamos usar a opção de cliente Stable API para evitar alterações significativas quando o Atlas atualizar para uma nova versão do MongoDB Server. Para saber mais sobre o recurso de Stable API , consulte o guia deStable API .
O código abaixo mostra como usar o driver .NET/C# para se conectar a um Atlas cluster. O código também usa a opção server_api
para especificar uma versão da API estável.
using MongoDB.Driver; using MongoDB.Bson; // Replace the placeholder with your Atlas connection string const string connectionUri = "<connection string>"; var settings = MongoClientSettings.FromConnectionString(connectionUri); // Sets the ServerApi field of the settings object to Stable API version 1 settings.ServerApi = new ServerApi(ServerApiVersion.V1); // Creates a new client and connects to the server var client = new MongoClient(settings); // Sends a ping to confirm a successful connection try { var result = client.GetDatabase("admin").RunCommand<BsonDocument>(new BsonDocument("ping", 1)); Console.WriteLine("Pinged your deployment. You successfully connected to MongoDB!"); } catch (Exception ex) { Console.WriteLine(ex);}
Implantações locais
Para se conectar a uma implantação local do MongoDB, use localhost
como nome do host. Por padrão, o processo mongod
é executado na porta 27017, embora você possa personalizar isso para seu sistema.
O código a seguir mostra como usar o driver .NET/C# para se conectar a um sistema local do MongoDB :
using MongoDB.Driver; // Sets the connection URI const string connectionUri = "mongodb://localhost:27017"; // Creates a new client and connects to the server var client = new MongoClient(connectionUri);
Conjuntos de réplicas
Para se conectar a um conjunto de réplicas, especifique o nome de host (ou o endereço IP) e o número de porta dos membros do conjunto de réplicas em sua string de conexão.
O código a seguir mostra como usar o driver .NET/C# para se conectar a um conjunto de réplicas que contém três hosts:
using MongoDB.Driver; // Sets the connection URI than includes the list of hosts in the replica set const string connectionUri = "mongodb://host1:27017,host2:27017,host3:27017"; // Creates a new client and connects to the server var client = new MongoClient(connectionUri);
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.
Se você não conseguir fornecer uma lista completa de hosts no conjunto de réplicas, poderá especificar um ou mais hosts no conjunto de réplicas e instruir o driver .NET/C# a executar a descoberta automática para encontrar os outros. Para instruir o driver a realizar a descoberta automática, execute uma das seguintes ações:
Especifique o nome do conjunto de réplica como o valor do parâmetro
replicaSet
.Especifique
false
como o valor do parâmetrodirectConnection
. Você também pode omitir este parâmetro, pois ele é padronizado parafalse
.Especifique mais de um host no conjunto de réplica.
No exemplo a seguir, o driver usa um URI de conexão de exemplo para se conectar ao conjunto de réplicas do MongoDB sampleRS
, que está sendo executado na porta 27017
de três hosts diferentes, incluindo host1
:
using MongoDB.Driver; // Sets the connection URI than includes the replica set name const string connectionUri = "mongodb://host1:27017/?replicaSet=sampleRS"; // Creates a new client and connects to the server var client = new MongoClient(connectionUri);
Observação
Especificando o nome do conjunto de réplicas
Embora o driver possa descobrir automaticamente os membros do conjunto de réplicas sem especificar os nomes de host de todos os membros ou o nome do conjunto de réplicas , recomendamos especificar o nome do conjunto de réplicas para evitar casos extremos em que o conjunto de réplicas não será inicializado corretamente.
O driver .NET/C# equilibra uniformemente as operações entre implantações acessíveis dentro do valor localThresholdMS
do cliente. Para saber mais sobre como o driver .NET/C# equilibra a carga das operações em várias implementações do MongoDB, consulte o guia Personalizar seleção de servidor.
Observação
O construtor MongoClient
não está bloqueando. Quando você se conecta a um conjunto de réplicas, o construtor retorna imediatamente enquanto o cliente usa threads em segundo plano para se conectar ao conjunto de réplicas.
Se você construir um MongoClient
e imprimir imediatamente a representação de string de seu atributo nodes
, a lista poderá estar vazia enquanto o cliente se conecta aos membros do conjunto de réplicas.
Conecte-se a um único servidor
Para conectar a um único servidor em um conjunto de réplicas em vez do conjunto de réplicas inteiro, especifique false
como o valor da opção de conexão do directConnection
. Você pode fazer isso de duas maneiras: passando um argumento para o construtor MongoClient
ou por meio de um parâmetro em sua string de conexão. Selecione a aba MongoClientSettings ou Connection String para ver o código correspondente.
using MongoDB.Driver; var settings = MongoClientSettings.FromConnectionString("mongodb://host1:27017"); settings.DirectConnection = true; var client = new MongoClient(settings);
using MongoDB.Driver; const string connectionUri = "mongodb://host1:27017/?directConnection=true"; var client = new MongoClient(connectionUri);
Descoberta de serviço DNS
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. Além disso, se você habilitar o formato de conexão SRV, o driver .NET/C# fará uma nova varredura automaticamente em busca de novos hosts sem precisar alterar a configuração do cliente .
O código a seguir mostra uma string de conexão que usa o formato de conexão SRV:
var 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 os tipos discutidos neste guia, consulte a seguinte documentação da API: