zoukankan      html  css  js  c++  java
  • 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。
  • 相关阅读:
    C#高性能大容量SOCKET并发(转)
    使用 NuGet 更新套件時將 jQuery 升級到 2.0.2 應該如何降級
    《TD式创新”祸国殃民》
    技术负责人的三种角色
    WaitForSingleObject和CEvent用法
    C++和C#转换
    C#与C/C++的交互
    Introducing .NET Core
    NHibernate的调试技巧和Log4Net配置
    Using Windows Server 2012 Backup for Hyper-V Virtual Machines. Error 80780176
  • 原文地址:https://www.cnblogs.com/Kellana/p/6004767.html
Copyright © 2011-2022 走看看