Aggiornamento:
MongoServer.Create
è obsoleta adesso (grazie a @ aknuds1). Invece questo uso seguente codice:
var _server = new MongoClient(connectionString).GetServer();
E 'facile. Devi prima prendere il nome del database dalla stringa di connessione e quindi ottenere il database per nome. Esempio 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: Se il database e il database di autenticazione sono diversi, è possibile aggiungere un parametro di query = authSource per specificare un database di autenticazione diverso. (Grazie a @chrisdrobison)
From docs:
NOTA Se si utilizza il segmento database come il database iniziale per uso, ma il nome utente e la password specificati sono definiti in un database diverso , è possibile utilizzare l'opzione authSource per specificare il database in cui è definita la credenziale. Ad esempio, mongodb: // user: pass @ nomehost/db1? AuthSource = userDb autenticherebbe le credenziali rispetto al database userDb anziché a db1.
fonte
2011-08-26 08:41:31
Ah, ok - Vedo il mio problema. Non ho accesso alla stringa di connessione, ma solo all'oggetto MongoServer già creato. E non sembra conoscere il database specificato dalla stringa di connessione. Grazie. –
MongoServer.Create è obsoleto. – aknuds1
@ aknuds1: Grazie, la risposta è aggiornata. –