sql >> データベース >  >> NoSQL >> MongoDB

mongocsharpdriver 2.7.0を使用して(認証を使用して)MongoDbに接続できません

    このリンクをたどるMongoサイト セクション

    を見てください

    問題は、clientdbのmongoadminユーザーを認証していることです。ただし、mongoadminユーザーはadmindbに対して認証されています。 mongoadminユーザーを認証すると、clientdbにアクセスできます。

    以下は、URIメソッドを使用したサンプルです。

            IMongoClient _client;
            public readonly IMongoDatabase _database;
    
            public MongoContext_URIBased()
            {
                var mongoUrl = new MongoUrl("mongodb://mongoadmin:[email protected]:2020/admin");
                _client = new MongoClient(mongoUrl);
                _database = _client.GetDatabase("clientdb");
            } 
    

    そして、あなたのコードによると、以下が機能します:

    構成ファイルは次のようになります。

    <appSettings>
    <add key="MongoMasterDatabaseName" value="admin" />
    <add key="MongoUsername" value="mongoadmin" />
    <add key="MongoPassword" value="secret" />
    <add key="MongoPort" value="2020" />
    <add key="MongoHost" value="172.17.103.158" />
    <add key="MongoClientDatabaseName" value="clientDb" />
    
    
    </appSettings>
    

    そしてC#コード:

    public class MongoContext
        {
            IMongoClient _client;
            public readonly IMongoDatabase _database;
    
            public MongoContext()
            {
                MongoCredential credential = MongoCredential.CreateCredential(ConfigurationManager.AppSettings["MongoMasterDatabaseName"], ConfigurationManager.AppSettings["MongoUsername"], ConfigurationManager.AppSettings["MongoPassword"]);
                var settings = new MongoClientSettings
                {
                    Credential = credential,
                    Server = new MongoServerAddress(, Convert.ToInt32(ConfigurationManager.AppSettings["MongoPort"]))
                };
                _client = new MongoClient(settings);
                _database = _client.GetDatabase(ConfigurationManager.AppSettings["MongoClientDatabaseName"]);
            }
        }
    

    ご覧のとおり、mongoadminユーザーは最初にadmindbに対して認証されています。次に、clientdbに接続できます



    1. unwindフィールドがmongodbに存在しない場合にすべての結果を取得する方法

    2. Redisを使用したマルチパラメーターマッチファインダー

    3. Mongodbアップデート多数

    4. MongoDB 4.0で配列の内容をコンマ区切り値として保持することにより、文字列配列を文字列に変換する方法