如何仅使用mongo C#驱动程序中的连接字符串来`ListCollections`?

时间:2019-07-19 12:04:38

标签: c# mongodb mongodb-.net-driver

我正在使用包含DB的完整连接字符串实例化MongoClient

MongoClient dbClient = new MongoClient("mongodb://***:***@***:27017/myDb");
var dbList = dbClient.ListDatabases();
IMongoDatabase db = dbClient.GetDatabase("myDb");
var collList = db.ListCollections().ToList();
... 

这有效。但是-

如果连接字符串已经包含myDb,那么为什么我需要再次写:

dbClient.GetDatabase("myDb");

我已经在连接字符串中写了myDb

问题:

连接字符串中已经提到的DB ListCollections是否有任何选择?

1 个答案:

答案 0 :(得分:1)

一种选择是仅从连接字符串中提取数据库名称。这听起来可能有点混乱,但是MongoUrl使它变得简单易用。这是一个示例:

var connectionString = "...";
var dbName = MongoUrl.Create(connectionString).DatabaseName;

// ...

IMongoDatabase db = dbClient.GetDatabase(dbName);