Actualización:
MongoServer.Create
es obsoleto en la actualidad (gracias a @ aknuds1). En cambio, esta utilización siguiente código:
var _server = new MongoClient(connectionString).GetServer();
Es fácil. Primero debe tomar el nombre de la base de datos de la cadena de conexión y luego obtener la base de datos por nombre. Ejemplo completo:
var connectionString = "mongodb://localhost:27020/mydb";
//take database name from connection string
var _databaseName = MongoUrl.Create(connectionString).DatabaseName;
var _server = MongoServer.Create(connectionString);
//and then get database by database name:
_server.GetDatabase(_databaseName);
Importante: Si su base de datos y base de datos de autenticación son diferentes, se puede añadir un parámetro de consulta = authSource para especificar una base de datos de autenticación diferente. (Gracias a @chrisdrobison)
From docs:
NOTA Si está utilizando el segmento de base de datos como la base de datos inicial a uso, pero el nombre de usuario y la contraseña especificados se definen en una base de datos diferente, puede utilizar la opción authSource para especificar la base de datos en la cual se define la credencial. Por ejemplo, mongodb: // user: pass @ hostname/db1? AuthSource = userDb autenticaría la credencial contra la base de datos userDb en lugar de db1.
Ah, vale, veo mi problema. No tengo acceso a la cadena de conexión, sino solo al objeto MongoServer ya creado. Y no parece saber acerca de la conexión de la base de datos especificada. Gracias. –
MongoServer.Create es obsoleto. – aknuds1
@ aknuds1: Gracias, la respuesta está actualizada. –