i am facing issue with maintaining connection and connection pool size
exports.connect = function (options = { maxPoolSize: 100 }) {
return async function (cb) {
await disconnect();
let URI;
if (process.env.IS_REPLICA_SET == "true") {
URI = `mongodb://${process.env.MONGO_USER}:${process.env.MONGO_PASSWORD}@`
let sets = [
process.env.SET_SECONDARY2 + process.env.MONGO_PORT,
process.env.SET_SECONDARY1 + process.env.MONGO_PORT,
process.env.SET_PRIMARY + process.env.MONGO_PORT
]
URI = `${URI}${sets.toString()}/${process.env.MONGO_DEFAULT_DATABASE}?ssl=true&replicaSet=${process.env.REPLICA_NAME}&authSource=admin&retryWrites=true&w=majority`;
} else
URI = `mongodb+srv://${process.env.MONGO_USER}:${process.env.MONGO_PASSWORD}@${process.env.MONGO_CLUSTURE}/${process.env.MONGO_DEFAULT_DATABASE}?retryWrites=true&w=majority`;
try {
let db = mongoose.connect(URI, options);
log.warn("Connecting to MongoDB...");
mongoose.connection.on('error', error => {
log.error('Connection lost to MongoDB! ' + error.message);
});
// mongoose.set('debug', true);
console.info("---------------------------------------");
global.log.info("Connection mode: " + (process.env.IS_REPLICA_SET == "true" ? "Replica set" : "SRV"));
console.info("---------------------------------------");
if (cb) cb(db); log.info("Connection established with MongoDB...");
} catch (error) {
log.error('Could not connect to MongoDB! ' + error.message);;
}
}
}
function disconnect() {
mongoose.disconnect(() => {
log.warn('Disconnected from MongoDB.');
});
};
exports.disconnect = disconnect;
this above code i am using