我只是对原生驱动程序不会抱怨我的(未正确配置的)副本集这一事实感到好奇。事实上,我的设置只有一个mongod
监听端口 27021 的实例(甚至没有使用端口 27018 和 27019):
var async = require('async')
, mongodb = require('mongodb')
, Db = mongodb.Db
, Connection = mongodb.Connection
, Server = mongodb.Server
, ReplSetServers = mongodb.ReplSetServers;
async.waterfall([
function (callback) {
var rls = new ReplSetServers([
new Server('localhost', 27017, {}), // Just mongod instance
new Server('localhost', 27018, {}), // Offline
new Server('localhost', 27019, {}), // Offline
]);
new Db('test', rls, { w: 0 }).open(function (err, db) {
callback(err, db);
});
},
], function (err, db) {
if (err) console.error(err);
if (db) db.close();
});
没有错误输出。当然,停止唯一的mongod
运行实例会导致连接错误。我在这里遗漏了一些明显的东西吗?