そこには大量のデータがありますが、わかりません。MongoDB接続文字列でデータベースを指定してください
次の接続文字列mongodb//admin:[email protected]/my_database
を使用してください。この接続文字列を使用すると、MongoDBインスタンスと特定のデータベースmy_database
に接続できたと思います。
これにはいくつかの問題がありますが、これはうまくいくはずですが、MongoDBの公式ドキュメントを見ると、認証するデータベースはdatabase
です。
/databaseは、ログインするデータベースの名前であるため、username:password @構文が使用されている場合にのみ関連します。指定されていない場合、デフォルトで "admin"データベースが使用されます。
管理者データベース(私のユーザがいる場所)に認証されるようにしたいが、データベースmy_database
にアクセスしたい。
private static string _connectionString = ConfigurationManager.ConnectionStrings["MongoDB"].ToString();
public static IMongoDatabase GetDatabase()
{
var _url = MongoUrl.Create(_connectionString);
var _databaseName = _url.DatabaseName;
return new MongoClient(_connectionString).GetDatabase(_databaseName);
}
しかし、私はこれを行うたびに、私はMongoDBのに行われた呼び出しのタイムアウトを受けています:私は、この手順が機能することを期待したいです。例はこれです:私は私のreturn new MongoClient(_connectionString).GetDatabase("my_database");
に接続文字列とハードコードからデータベース名をデータベースを削除した場合に予想されるように
public List<SomeObject> GetAllObjects()
{
var database = DatabaseInstance.GetDatabase();
// Error is thrown here (timout after 30000ms)
var objects = database.Getcollection<SomeObject>("SomeObjects").Find(Builders<SomeObject>.Filter.Empty).Find();
return objects;
}
今、すべてが動作します。
接続文字列の/データベースオプションがわかりません。誰かがこのことを明らかにすることができれば、本当に感謝しています。