Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Guía de Conexión

Esta guía te muestra cómo conectarte a una instancia o a un set de réplicas de MongoDB implementación usando el driver .NET/C#.

Un URI de conexión, también conocido como una cadena de conexión, le dice al driver cómo conectarse a una implementación de MongoDB y cómo comportarse mientras está conectado.

Una cadena de conexión estándar incluye los siguientes elementos:

pieza
Descripción

mongodb://

Requerido. Un prefijo que identifica esto como un string en el formato de conexión estándar.

username:password@

opcional. Credenciales de autenticación. Si incluyes estos datos, el cliente autenticará al usuario en la base de datos especificada en authSource.

host[:port]

Requerido. El host y el número de puerto opcional donde se ejecuta MongoDB. Si no incluye el número de puerto, el driver utilizará el puerto por defecto, 27017.

/defaultauthdb

opcional. La base de datos de autenticación que se debe utilizar si la cadena de conexión incluye credenciales de autenticación username:password@ pero no la opción authSource. Si no incluyes esta parte, el cliente autenticará al usuario contra la base de datos admin.

?<options>

Opcional. Un string de la query que especifica opciones específicas de conexión como pares <name>=<value>. Ver Opciones de conexión para una descripción completa de estas opciones.

Para utilizar un URI de conexión, páselo como un string al constructor de MongoClient. En el siguiente ejemplo, el driver utiliza un URI de conexión de muestra para conectarse a una instancia de MongoDB en el puerto 27017 de localhost:

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

Tip

Reutilizar el cliente

Como cada MongoClient representa un conjunto de conexiones a la base de datos, la mayoría de las aplicaciones requieren solo una instancia de MongoClient, incluso en varias solicitudes. Para obtener más información sobre cómo funcionan los pool de conexiones en el driver, consulta la página de preguntas frecuentes.

Ver el Manual de MongoDB para obtener más información sobre cómo crear una cadena de conexión.

Puede usar un objeto MongoClientSettings para configurar la conexión en código en lugar de en un URI de conexión. Para usar un objeto MongoClientSettings, creá una instancia de la clase y pasala como argumento al constructor de MongoClient.

En el siguiente ejemplo, el controlador utiliza un objeto MongoClientSettings para conectar con una instancia de MongoDB en el puerto 27017 de localhost:

using MongoDB.Driver;
// Creates a MongoClientSettings object
var settings = new MongoClientSettings()
{
Scheme = ConnectionStringScheme.MongoDB,
Server = new MongoServerAddress("localhost", 27017)
};
// Creates a new client and connects to the server
var client = new MongoClient(settings);

Para conectarse a una implementación de MongoDB en Atlas, cree un cliente. Puede crear un cliente que utilice su cadena de conexión y otras opciones del cliente pasando un objeto MongoClientSettings al constructor MongoClient.

Para especificar tu URI de conexión, pásala al método FromConnectionString(), que devuelve una nueva instancia de MongoClientSettings. Para especificar cualquier otra opción del cliente, configura los campos relevantes del objeto MongoClientSettings.

Puedes establecer la Stable API como una opción del cliente para evitar cambios disruptivos cuando actualices a una nueva versión del servidor. Para obtener más información sobre la funcionalidad de la Stable API, consulta la Página de la Stable API.

El siguiente código muestra cómo puedes especificar la cadena de conexión y la opción Stable API client al conectarte a una implementación de MongoDB y verificar que la conexión sea exitosa:

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

Tip

Siga la guía de conexión del driver Atlas para recuperar su cadena de conexión.

Para conectarte a la implementación de un set de réplicas, especifica los nombres de host (o direcciones IP) y los números de puerto de los nodos del set de réplicas.

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 de réplicas e instruir al driver para que realice el descubrimiento automático de una de las siguientes formas:

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

  • Especifique false como el valor del parámetro directConnection.

  • 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 sample.host1:

using MongoDB.Driver;
// Sets the connection URI than includes the replica set name
const string connectionUri = "mongodb://sample.host1:27017/?replicaSet=sampleRS";
// 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.

Volver

Conexión

En esta página