尝试使用**mongoose**:
if(config.db.indexOf('replicaSet') > - 1) {
dbOptions = {
db: {native_parser: true},
replset: {
auto_reconnect:false,
poolSize: 10,
socketOptions: {
keepAlive: 1000,
connectTimeoutMS: 30000
}
},
server: {
poolSize: 5,
socketOptions: {
keepAlive: 1000,
connectTimeoutMS: 30000
}
}
};
}
var db = mongoose.connect(config.db, dbOptions);
在哪里
config.db = 'mongodb://USER:PW@host1:port1,host2:port2/DBNAME?replicaSet=RSNAME'
详细说明:
仅当连接 URI 包含单个非集群连接(也称为单个连接字符串)时才会调用“服务器”块。
“replset”块仅在连接 URL 包含逗号分隔的连接字符串列表(也称为复制集)时调用。
var options = {
db: {
native_parser: true
},
// This block gets run for a non replica set connection string (eg. localhost with a single DB)
server: {
poolSize: 5,
reconnectTries: Number.MAX_VALUE,
ssl: false,
sslValidate: false,
socketOptions: {
keepAlive: 1000,
connectTimeoutMS: 30000
}
},
// This block gets run when the connection string indicates a replica set (comma seperated connections)
replset: {
auto_reconnect: false,
poolSize: 10,
connectWithNoPrimary: true,
ssl: true,
sslValidate: false,
socketOptions: {
keepAlive: 1000,
connectTimeoutMS: 30000
}
}
};
这个块在本地主机和生产环境上都有效。