URI中的ReplicaSet但MongoClient(节点)仍然抛出:“ MongoError:种子列表不包含mongos代理...”

时间:2019-04-04 15:25:55

标签: node.js mongodb url-parsing

我正在尝试连接到一个数据库,该数据库要求我提供replicaSet选项。当我采用这些选项并将它们作为URI中的查询字符串传递时,它会引发以下错误(如果我选择使用newUrlParser):

MongoError: seed list contains no mongos proxies, replicaset connections requires 
            the parameter replicaSet to be supplied in the URI or options object, 
            mongodb://server:port/db?replicaSet=name

但是,如果我将replicaSet选项作为MongoClient options对象的一部分传递,它们似乎可以正常工作:

client = await MongoClient.connect(DB_URI, {
  newUrlParser: true,
  replicaSet: ...
}

问题是,连接字符串的每个部分都存储为ENV变量(我无法更改),因此实际上将它们设置为"?replicaSet=...&otherOption=...",我不想将它们解析为一个对象以使其正常工作。

或者,我可以禁用newUrlParser,但这似乎并不是解决此问题的最佳方法。我设法找到人在谈论类似的问题on a JIRA thread,但似乎已经为他们解决了这个问题,并且我使用的是最新版本,但仍然可以看到问题。


版本:"mongodb": "3.2.2"

0 个答案:

没有答案