如何将mongoose重新连接到另一台远程服务器?

时间:2014-01-24 23:51:59

标签: node.js mongodb mongoose

我是node.js和mongoose的新手,如何将mongoose重新连接到另一台远程服务器? 在文件的开头我有

var mongoose = require('mongoose')

并连接到localhost,

稍后我在代码中

var uristring ='mongodb://remote_server/db';
var mongoOptions = { db: { safe: true } };

// Connect to Database
mongoose.createConnection(uristring, mongoOptions, function (err, res) {
    if (err) {
        console.log ('ERROR connecting to: remote' + uristring + '. ' + err);
    } else {
        console.log ('Successfully connected to: remote' + uristring);
    }
});

并且我总是得到Successfully connected to: remote但是当我按照id看到文档的打印查找时,我总是从本地数据库获取(我导入的模式像require Person = mongoose.model('Person');)。 如果我已经连接到本地,如何重新连接到远程。

1 个答案:

答案 0 :(得分:2)

mongoose中有两种初始化连接的方式:

  1. 使用默认连接“object”
  2. 从尘土中创建连接
  3. 您在这里创建一个连接,但使用另一个模型。模型与数据库(普通数据库,副本集或集群)相关联,因此您无法访问正确的主机。

    您必须使用默认连接(使用mongoose.connect代替mongoose.createConnection)或在您正在使用的新连接中创建模型。在您的示例中:

      var uristring ='mongodb://remote_server/db';
      var mongoOptions = { db: { safe: true } };
    
      // Connect to Database
      var newConnection = mongoose.createConnection(uristring, mongoOptions);
    
      newConnection.model(/*whatever*/);
    

    mongoose.model连接到mongoose.connection。这不是您创建的新连接。