Mongoose use multi-database
In some cases you need to use multiple databases based on some conditions , for example we have English content database and Arabic content database
here is how to do that
first make connection to a default database
mongoose.connect('mongodb://localhost/default');
then in the model
//models/userModel.js
import mongoose, { Schema } from 'mongoose';
const userSchema = new Schema({
name:String,
age:Number,
});
const myDbEn = mongoose.connection.useDb('myDbEn');
const myDbAr = mongoose.connection.useDb('myDbAr');
const UserEnModel = myDbEn.model('user', userSchema);
const UserArModel = myDbAr.model('user', userSchema);
module.exports = { UserEnModel, UserArModel };
in our controller we check which database to use based on an env variable
//controllers/userController.js
const { UserEnModel, UserArModel } = require('./models/userModel');
if(env=='en'){
UserModel = UserEnModel;
}else{
UserModel = UserArModel;
}
UserModel.find({}).then((result)=>{
console.log('users ', env, ':', users);
});