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

複数のmongodbホストに接続し、SpringBootで別のデータベースを使用して認証します

    ドキュメント によると 接続文字列のURI形式は次のとおりです。

    mongodb://[username:[email protected]]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
    

    /データベース 一部は次のように記述されます:

    次のようにURIを設定しました:

    spring.data.mongodb.uri = mongodb://content_rw:<secret password>@a.mongo.db:27017,b.mongo.db:27017,c.mongo.db:27017/contenttest?wtimeoutMS=300&connectTimeoutMS=500&socketTimeoutMS=200
    

    ログには次の行が表示されます:

    Exception authenticating MongoCredential{mechanism=null, userName='content_rw', source='contenttest', password=<hidden>, mechanismProperties={}}
    

    MongoCredential.java source 記述:

    したがって、認証データベースを / contenttestとして設定したようです。 としてではなく:

    spring.data.mongodb.authentication-database=admin
    

    URIからデータベース名を削除し、おそらく spring.data.mongodb.authentication-databaseを削除する必要があると思います。 admin であるため、プロパティ デフォルトではデータベースが使用されます。

    また、これを見てください:

    この行は、アプリケーションデータベースの設定という点で興味深いはずです。

    spring.data.mongodb.database=test # Database name.
    



    1. node.jsメソッドのfindRandom()マングースが機能しないのはなぜですか?

    2. MongoDB:複数の条件で配列内の値を検索

    3. MongoDBの日付を照合して埋め込みドキュメントをクエリする

    4. MacにMongoDBをインストールする