Aktualizacja:
MongoServer.Create
jest już nieaktualne (dzięki @ aknuds1). Zamiast tego użyć poniższy kod:
var _server = new MongoClient(connectionString).GetServer();
To proste. Najpierw należy pobrać nazwę bazy danych z ciągu połączenia, a następnie pobrać bazę danych według nazwy. Kompletny przykład:
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);
Ważne: Jeśli baza danych i baza danych uwierzytelniania są różne, można dodać parametr = zapytań authSource aby określić inną bazę danych uwierzytelniania. (Dziękuję @chrisdrobison)
From docs:
UWAGA Jeśli używasz segment bazy danych jako początkowej bazy danych do użytku, ale nazwa użytkownika i hasło podane są zdefiniowane w innej bazy danych, można użyć opcja authSource określająca bazę danych , w której zdefiniowano poświadczenie. Na przykład: mongodb: // użytkownik: pass @ nazwa_hosta/db1? AuthSource = userDb uwierzytelniłby poświadczenie w bazie danych userDb zamiast db1.
Ah, ok - widzę mój problem. Nie mam dostępu do ciągu połączenia, ale tylko do już utworzonego obiektu MongoServer. I nie wydaje się wiedzieć o bazie danych określonych przez połączenie. Dzięki. –
MongoServer.Create jest przestarzały. – aknuds1
@ aknuds1: Dzięki, odpowiedź zostanie zaktualizowana. –