Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Elija un destino de conexión

En esta guía, puedes aprender cómo utilizar una cadena de conexión y MongoClient objeto para conectarse a diferentes tipos de implementaciones de MongoDB.

Para conectarte a una implementación de MongoDB en Atlas, incluye los siguientes elementos en tu cadena de conexión:

  • URL de tu clúster de Atlas

  • Nombre de usuario de MongoDB

  • Contraseña de MongoDB

Luego, pase la cadena de conexión al constructor MongoClient.

Tip

Sigue el Guía de conexión del controlador Atlas para recuperar tu cadena de conexión.

Cuando se conecte a Atlas, se recomienda utilizar la opción de cliente de Stable API para evitar cambios disruptivos al actualizar a una nueva versión de MongoDB Server en Atlas. Para obtener más información sobre la funcionalidad Stable API, consulta Stable API guide.

El siguiente código muestra cómo utilizar el Driver de .NET/C# para conectar a un clúster de Atlas. El código también utiliza la opción server_api para especificar una versión Stable API.

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);}

Para conectarse a una implementación local de MongoDB, use localhost como el nombre de host. Por defecto, el proceso mongod se ejecuta en el puerto 27017, aunque puedes personalizarlo para tu implementación.

El siguiente código muestra cómo utilizar el controlador .NET/C# para conectarse a una implementación local de 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);

Para conectarse a un conjunto de réplicas, especifique los nombres de host (o direcciones IP) y los números de puerto de los miembros del conjunto de réplicas en su cadena de conexión.

El siguiente código muestra cómo usar el driver .NET/C# para conectarse a un set de réplicas que contiene tres 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);

Nota

Set de réplicas en Docker

Cuando un set de réplicas se ejecuta en Docker, se podría exponer solo un punto final de MongoDB. En este caso, el set de réplicas no se puede detectar. Si se especifica directConnection=false en la URI de conexión, o se deja esta opción sin configurar, puedes evitar que tu aplicación se conecte a ella.

En un entorno de prueba o desarrollo, se puede conectar al set de réplicas especificando directConnection=true. En un entorno de producción, se recomienda configurar el clúster para que cada instancia de MongoDB sea accesible fuera de la red virtual de Docker.

Si no puedes proporcionar una lista completa de hosts en el set de réplicas, puedes especificar uno o más de los hosts en el set y pedir al driver .NET/C# que realice un descubrimiento automático para encontrar los demás. Para indicar al driver que realice un descubrimiento automático, realiza una de las siguientes acciones:

  • Especifique el nombre del set de réplicas como el valor del parámetro replicaSet.

  • Especifique false como valor del parámetro directConnection. También puede omitir este parámetro, ya que su valor predeterminado es false.

  • Especifica más de un host en el conjunto de réplicas.

En el siguiente ejemplo, el controlador utiliza un URI de conexión de muestra para conectarse al conjunto de réplicas de MongoDB sampleRS, que está funcionando en el puerto 27017 de tres hosts diferentes, incluyendo 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);

Nota

Especificación del nombre del conjunto de réplicas

Aunque el driver puede descubrir automáticamente los miembros del set de réplicas sin especificar los nombres de host de todos los miembros o el nombre del set de réplicas, se recomienda especificar el nombre del set de réplicas para evitar casos extremos en los que el set de réplicas no se inicialice correctamente.

El driver .NET/C# equilibra uniformemente las operaciones entre las implementaciones que son accesibles dentro del valor localThresholdMS del cliente. Para aprender más sobre cómo el driver .NET/C# equilibra operaciones entre múltiples implementaciones MongoDB, consulte la guía Personalización de la selección de servidor.

Nota

El constructor MongoClient es no bloqueante. Al conectarse a un set de réplicas, el constructor devuelve el control inmediatamente mientras el cliente utiliza hilos en segundo plano para conectarse al set de réplicas.

Si construyes un MongoClient e imprimes inmediatamente la representación de cadena de su atributo nodes, la lista podría estar vacía mientras el cliente se conecta a los miembros del set de réplicas.

Para conectarse a un solo servidor en un set de réplicas en lugar de a todo el set de réplicas, especifique false como el valor de la opción de conexión directConnection. Puedes hacerlo de dos maneras: pasando un argumento al constructor MongoClient o mediante un parámetro en tu cadena de conexión. Selecciona el MongoClientSettings o la pestaña Connection String para ver el código correspondiente.

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);

Para utilizar el descubrimiento de servicios DNS para buscar el registro DNS SRV del servicio al que te estás conectando, deber especificar el formato de conexión SRV en tu cadena de conexión. Además, si habilita el formato de conexión SRV, el controlador .NET/C# vuelve a escanear automáticamente en busca de nuevos hosts sin necesidad de cambiar la configuración del cliente.

El siguiente código muestra una cadena de conexión que utiliza el formato de conexión SRV:

var uri = "mongodb+srv://<hostname>"

Para aprender más sobre el formato de conexión SRV, consulta la entrada Formato de conexión SRV en el manual de MongoDB Server.

Para obtener más información sobre los tipos analizados en esta guía, consulte la siguiente documentación de API:

Volver

Crea un MongoClient

En esta página