diff --git a/src/database/mongo.js b/src/database/mongo.js index be473e616c..a9ada1d424 100644 --- a/src/database/mongo.js +++ b/src/database/mongo.js @@ -73,7 +73,16 @@ nconf.set('mongo:database', '0'); } - var connString = 'mongodb://' + usernamePassword + nconf.get('mongo:host') + ':' + nconf.get('mongo:port') + '/' + nconf.get('mongo:database'); + var hosts = nconf.get('mongo:host').split(','); + var ports = nconf.get('mongo:port').toString().split(','); + var servers = []; + + for (var i = 0; i < hosts.length; i++) { + servers.push(hosts[i] + ':' + ports[i]); + } + + var connString = 'mongodb://' + usernamePassword + servers.join() + '/' + nconf.get('mongo:database'); + var connOptions = { server: { poolSize: parseInt(nconf.get('mongo:poolSize'), 10) || 10 @@ -152,4 +161,3 @@ }; }(exports)); - diff --git a/tests/mocks/databasemock.js b/tests/mocks/databasemock.js index d3dea94a8c..a895d25c8a 100644 --- a/tests/mocks/databasemock.js +++ b/tests/mocks/databasemock.js @@ -45,6 +45,14 @@ ' "password": "",' + '\n' + ' "database": "1"' + '\n' + '}\n'+ + ' or (mongo) in a replicaset' + '\n' + + '"test_database": {' + '\n' + + ' "host": "127.0.0.1,127.0.0.1,127.0.0.1",' + '\n' + + ' "port": "27017,27018,27019",' + '\n' + + ' "username": "",' + '\n' + + ' "password": "",' + '\n' + + ' "database": "nodebb_test"' + '\n' + + '}\n'+ '===========================================================' ); winston.error(errorText);