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

时间:2016-07-27 19:13:45

标签: c# mongodb

我需要连接到mongo并运行命令。 我正在使用以下代码进行连接。我想通过列出数据库来测试我正在连接的天气。

MongoClient client = new MongoClient("mongodb://127.0.0.1:27017");
client.ListDatabases();

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

3 个答案:

答案 0 :(得分:0)

您需要在连接字符串中指定凭据。夫妻双方可以做到这一点:

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's documentation site

找到

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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