从C#和列表数据库连接到查询路由器(mongos)

本文关键字:路由器 mongos 查询 列表 数据库连接 | 更新日期: 2023-09-27 17:59:01

我需要连接到mongo并运行命令。我正在使用以下代码进行连接。我想通过列出数据库来测试我正在连接的天气。
MongoClient client = new MongoClient("mongodb://127.0.0.1:27017");
client.ListDatabases();

如果我调试并单击第二行,我将看不到数据库的名称。我如何将数据库的名称打印到屏幕上以确认我已连接到mongo。

从C#和列表数据库连接到查询路由器(mongos)

您需要在连接字符串中指定凭据。有几种方法可以做到这一点:

var connectionString = "mongodb://user1:password1@127.0.0.1:27017";

是预期的格式,您必须自己提供用户名和密码,这些只是占位符。

或者,您可以创建一个MongoCredentials对象,并使用它来代替连接字符串(这样可能会更干净一些,如果您深入查看对象文档,可以进行更多配置(

var credential = MongoCredential.CreateMongoCRCredential("test", "user1", "password1");
var settings = new MongoClientSettings
{
    Credentials = new[] { credential }
};
var mongoClient = new MongoClient(settings);

这两个例子都可以在MongoDB的文档网站

上找到

尝试GetDatabaseNames()方法,并将结果分配给变量。这样你就可以像一样在断点处检查它

MongoClient client = new MongoClient("mongodb://127.0.0.1:27017/");
var databaseNames = client.GetDatabaseNames();

ListDatabases返回IAsyncCursor,请尝试以下操作:

var client = new MongoClient(<CONNECTION STRING>);
var cursor = client.ListDatabases();
cursor.ForEachAsync(db => Console.WriteLine(((BsonString)db["name"]).Value));