mongodb 有一个坑 报错 no mongos proxies found in seed list

Posted 希望是附丽于存在的,有存在便有希望,有希望便是光明!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb 有一个坑 报错 no mongos proxies found in seed list相关的知识,希望对你有一定的参考价值。

mongoose 的报当我从 mongoose@4.5.2 升级到 mongoose@4.6.5的时候,出现了一个问题:

Unhandled rejection MongoError: no mongos proxies found in seed list

怎么办,我google 一下的时候发现:

  https://github.com/christkv/mongodb-core/issues/118

原来是mongo的一个bug

 

 

哎呦!看下源码,这是mongoose@4.6.5

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;
};
再看下低版本的mongoose@4.5.2
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。

 

以上是关于mongodb 有一个坑 报错 no mongos proxies found in seed list的主要内容,如果未能解决你的问题,请参考以下文章

mongo启动链接服务报错

我无法使用 mongo / mongoose / NO METEOR 设置 react apollo mongodb app => 解析器

springboot 连接mongo副本集报错记录

MongoDB踩坑记录

踩坑记录-连接 MongoDB Compass Community 报错

MongoDB 5.0 复制:Mongo::Error::NoServerAvailable