我需要指定所有主机的副本在Mongoose,Express-session-mongo和Mongo中设置吗?

我有MongoDB副本设置为:

Host1: 10.10.10.1:27017 Host2: 10.10.10.1:27018 Host3: 10.10.10.2:27017 Host4: 10.10.10.2:27018 

当我设置连接(例如IN Mongoose)时,我必须这样做:

 mongoose.connectSet('mongodb://10.10.10.1:271017/mydb, mongodb://10.10.10.1:27018/mydb, mongodb://10.10.10.2:27107/mydb, mognodb://10.10.10.27108/mydb); 

我可以这样做吗?

 mongoose.connectSet('mongodb://10.10.10.1/mydb, mongodb://10.10.10.2/mydb'); 

特快蒙古语和蒙古语怎么样? 如何设置连接到副本集?

为什么我必须定义所有的主机名? 驱动程序不应该知道所有的主要和次要的,并保持查找表,而不是在build立连接时手动定义它?

所以mongoose使用的mongodb驱动程序将在原始集合中至less有一个成员的情况下查找复制组的所有成员。 这是由于复制对象中的每个成员都知道所有其他成员。 但是,越多的服务器你知道的越好,因为它使得它更容易find一台服务器,以防止只有通过服务器传递服务器。