Neste momento estou aprendendo MongoDB e estou brincando com conexões de conjuntos de réplicas. Gosto de contribuir com 2 formas que tenho usado para me conectar ao banco de dados que achei útil, se não ajudar ninguém, pelo menos terei um lugar para consultar no futuro (tenho certeza que vou precisar dele em algum momento) primeiro:
var connString = "mongodb://localhost:27029,localhost:27027,localhost:27028?connect=replicaSet";
var client = new MongoClient(connString);
var db = client.GetDatabase("test");
segundo:
var settings = new MongoClientSettings
{
Servers = new[]
{
new MongoServerAddress("localhost", 27027),
new MongoServerAddress("localhost", 27028),
new MongoServerAddress("localhost", 27029)
},
ConnectionMode = ConnectionMode.Automatic,
ReplicaSetName = "m101",
WriteConcern = new WriteConcern(WriteConcern.WValue.Parse("3"),wTimeout:TimeSpan.Parse("10"))
};
var client = new MongoClient(settings);
O primeiro, me permite conectar ao banco de dados através dos servidores especificados na lista de servidores. Isso permite que o driver se conecte automaticamente ao novo nó principal no conjunto de réplicas em caso de falha com o principal. Com o segundo, envio a lista de servidores no conjunto de réplicas, o tipo de conexão. O nome do conjunto de réplicas e a configuração referente à gravação. Com esta configuração, estou forçando o driver a aguardar um reconhecimento de escrita dos 3 servidores no conjunto de réplicas (WValue:3) e esperar no máximo 10 segundos pela confirmação de escrita.