使用 mongodb 和 mongoose 为每个用户建立单独的数据库

Kir*_*ech 5 mongoose mongodb node.js express passport.js

我正在使用 mongodb 和 mongoose 来处理我的数据库需求。我目前有这个:

mongoose.connect(secrets.db, {server:{poolSize: 1}});
mongoose.connection.on('error', function() {
  console.error('MongoDB Connection Error. Make sure MongoDB is running.');
});
Run Code Online (Sandbox Code Playgroud)

作为我的 mongo 连接。我想改变这一点,以便每个登录(使用护照)的用户都有自己的数据库。所以当我这样做时,show dbs我想看看user_ObjectID_database_name如何修改我的代码以获得这个结果?我想要它,因为我相信从我的研究来看它更安全。但是,我找不到有关如何执行此操作的任何好的指南。我确信它们存在,但我已经花了 4 个小时的时间寻找即使是我能猜到的半好的也没有运气。

Currents 我只有一个users收藏。

这是我当前的代码,当用户/signup作为POST请求点击时运行。

exports.postSignup = function(req, res, next){
  req.assert('email', 'Please sign up with a valid email.').isEmail();
  req.assert('password', 'Password must be at least 6 characters long').len(6);

  var errors = req.validationErrors();

  if (errors) {
    req.flash('errors', errors);
    req.flash('form', {
      email: req.body.email
    });
    return res.redirect('/signup');
  }
  // calls next middleware to authenticate with passport
  passport.authenticate('signup', {
    successRedirect: '/dashboard', // Select redirect for post signup
    failureRedirect: '/signup',
    failureFlash : true
  })(req, res, next);
    next();
};
Run Code Online (Sandbox Code Playgroud)

我将其称为我的路线中的中间件,以保持它们的清洁。

编辑 **

分片会是更好的性能解决方案吗?我知道这需要大量的设置和规划,但它可能值得吗?唯一的问题是安全...