mongoose 的报当我从 [email protected] 升级到 [email protected]的时候,出现了一个问题:
Unhandled rejection MongoError: no mongos proxies found in seed list
怎么办,我google 一下的时候发现:
https://github.com/christkv/mongodb-core/issues/118
原来是mongo的一个bug
哎呦!看下源码,这是[email protected]
Mongoose.prototype.createConnection = function(uri, options) { var conn = new Connection(this); this.connections.push(conn); var rsOption = options && (options.replset || options.replSet); if (arguments.length) { if (rgxReplSet.test(arguments[0]) || checkReplicaSetInUri(arguments[0])) { conn.openSet.apply(conn, arguments); } else if (rsOption && (rsOption.replicaSet || rsOption.rs_name)) { conn.openSet.apply(conn, arguments); } else { conn.open.apply(conn, arguments); } } return conn;};再看下低版本的[email protected]
Mongoose.prototype.createConnection = function(uri, options) { var conn = new Connection(this); this.connections.push(conn); if (arguments.length) { if (rgxReplSet.test(arguments[0]) || checkReplicaSetInUri(arguments[0])) { conn.openSet.apply(conn, arguments); } else if (options && options.replset && (options.replset.replicaSet || options.replset.rs_name)) { conn.openSet.apply(conn, arguments); } else { conn.open.apply(conn, arguments); } } return conn;};也就是说,在低版本中,你的mongodb 做了复制集的配置和不做复制集的配置都能连接到mongodb,在高本中如果你做了复制集,options 中的参数需要加一个
replset或者replSet S为true,而没有做复制集的要为false。
时间: 2024-11-08 15:51:53