我是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');
)。
如果我已经连接到本地,如何重新连接到远程。
答案 0 :(得分:2)
在mongoose
中有两种初始化连接的方式:
您在这里创建一个连接,但使用另一个模型。模型与数据库(普通数据库,副本集或集群)相关联,因此您无法访问正确的主机。
您必须使用默认连接(使用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
。这不是您创建的新连接。