[c#] So erhalten Sie die in der Verbindungszeichenfolge in C # angegebene Mongo-Datenbank



Answers

Mit Version 1.7 des offiziellen 10gen-Treibers ist dies die aktuelle (nicht veraltete) API:

const string uri = "mongodb://localhost/mydb";
var client = new MongoClient(uri);
var db = client.GetServer().GetDatabase(new MongoUrl(uri).DatabaseName);
var collection = db.GetCollection("mycollection");
Question

Ich möchte eine Verbindung zu der in der Verbindungszeichenfolge angegebenen Datenbank herstellen, ohne sie in GetDatabase erneut GetDatabase .

Zum Beispiel, wenn ich eine Verbindungszeichenfolge wie diese habe;

mongodb://localhost/mydb

Ich möchte db.GetCollection("mycollection") von mydb .

Dadurch könnte der Datenbankname problemlos in der app.config-Datei konfiguriert werden.




In diesem Moment mit der letzten Version des C # -Treibers (2.3.0) ist die einzige Möglichkeit, den Datenbanknamen zu erhalten, der in der Verbindungszeichenfolge angegeben ist:

var connectionString = @"mongodb://usr:pwd@srv1.acme.net,srv2.acme.net,srv3.acme.net/dbName?replicaSet=rset";
var mongoUrl = new MongoUrl(connectionString);
var dbname = mongoUrl.DatabaseName;
var db = new MongoClient(mongoUrl).GetDatabase(dbname);
db.GetCollection<MyType>("myCollectionName");



Links