2016-07-27 4 views
0

mongoに接続してコマンドを実行する必要はありません。 次のコードを使用して接続しています。私は天気をテストしたい、私はデータベースをリストアップして接続している。C#とリストデータベースのクエリルータ(mongos)への接続

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

2番目の行をデバッグしてクリックすると、データベースの名前が表示されません。 mongoに接続していることを確認するために、データベースの名前を画面に印刷するにはどうすればよいですか。

+0

https://docs.mongodb.com/getting-started/csharp/client/私はclient.ListDatabases();にブレークポイントを設定します。 Intellisenseを使用してホバリングして、どのクライアントが構成されているかを調べます。クイックウォッチをすることもできます – FirebladeDan

+1

[MongoDB:すべてのデータベースのリストを取得する]の複製がありますか?(http://stackoverflow.com/questions/6105678/mongodb-getting-the-list-of-all-databases) – FrankerZ

+0

はい私は何をしたのですか?私が作成したデータベース名は表示されません – user2307236

答えて

0

接続文字列に資格情報を指定する必要があります。あなたがこれを行うことができるいくつかの方法:

var connectionString = "mongodb://user1:[email protected]: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

+0

接続資格情報を渡す必要がないように資格情報を作成しませんでした – user2307236

0

試行GetDatabaseNames()メソッドで見つけられ、結果を変数に割り当てます。あなたは

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

申し訳ありませんが、私のコメントは削除しましたが、MongoDbの最新NuGetパッケージは、 GetDatabaseNames()への参照はありますが、推奨されていないことを示す文書をすぐに見つけることができませんでした。 –

+0

@MattDearing、それはまったく廃止されておらず、まだそこにありますが、新しいバージョンのドライバはそれを持っていないかもしれません。ここをクリックhttp://api.mongodb.com/csharp/1.1/html/dd019888-5d24-5686-0cb8-3d046cee6acc.htm – Rahul

+0

1.1の時点でそれはそこにあったのですが、2.2以上ではありません: http: //api.mongodb.com/csharp/2.2/html/T_MongoDB_Driver_MongoClient.htm –

0

ListDatabasesのようにブレークポイントでそれを調べることができるようにように、次を試してみてくださいIAsyncCursorを返します。

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