我在应用程序中使用mongo和node.js. mongo数据库由两个服务器组成. 在http://howtonode.org/express-mongodb中给出的示例中,我可以使用以下命令连接到一台服务器: ArticleProvider = function(host, port) {
在http://howtonode.org/express-mongodb中给出的示例中,我可以使用以下命令连接到一台服务器:
ArticleProvider = function(host, port) { var database = 'node-mongo-blog'; this.db= new Db(database, new Server(host, port, {auto_reconnect: true}, {})); this.db.open(function(){}); };
但是我如何连接到多个服务器,在我的情况下有两个服务器.
示例代码来自https://github.com/christkv/node-mongodb-native/blob/master/examples/replSetServersQueries.js.
指定的服务器只是种子列表 – 它将自动发现完整列表.副本集的成员不是静态的 – 它们将更改(可能会添加新服务器或可能删除现有服务器).客户端连接到输入列表中指定的其中一个服务器,然后从中获取副本集成员.因此,您不必在此列出所有服务器地址 – 如果列表中提到的至少一个服务器已启动并运行,则会自动查找其余服务器.
var port1 = 27018; var port2 = 27019; var server = new Server(host, port, {}); var server1 = new Server(host, port1, {}); var server2 = new Server(host, port2, {}); var servers = new Array(); servers[0] = server2; servers[1] = server1; servers[2] = server; var replStat = new ReplSetServers(servers); console.log("Connecting to " + host + ":" + port); console.log("Connecting to " + host1 + ":" + port1); console.log("Connecting to " + host2 + ":" + port2); var db = new Db('node-mongo-examples', replStat, {native_parser:true});