如何在 mongo C# 驱动程序中仅使用连接字符串来“列出集合”?
How to `ListCollections` by using only connection string in mongo C# driver?
我正在使用包含数据库的完整连接字符串实例化 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
。
问题:
连接字符串中已经提到的数据库的 ListCollections
是否有任何选项?
一种选择是从连接字符串中提取数据库名称。这听起来可能有点乱,但是 MongoUrl
让它变得简单易行。这是一个例子:
var connectionString = "...";
var dbName = MongoUrl.Create(connectionString).DatabaseName;
// ...
IMongoDatabase db = dbClient.GetDatabase(dbName);
我正在使用包含数据库的完整连接字符串实例化 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
。
问题:
连接字符串中已经提到的数据库的 ListCollections
是否有任何选项?
一种选择是从连接字符串中提取数据库名称。这听起来可能有点乱,但是 MongoUrl
让它变得简单易行。这是一个例子:
var connectionString = "...";
var dbName = MongoUrl.Create(connectionString).DatabaseName;
// ...
IMongoDatabase db = dbClient.GetDatabase(dbName);