尝试使用猫鼬连接到MongoDB集群时出现'MongoError:ismaster的setName与提供的连接setName不匹配

时间:2018-10-20 08:40:11

标签: mongodb mongoose mongodb-atlas

我是一名学生,正在尝试为项目构建一个宁静的API。我对此很陌生,所以如果这很容易解决,请原谅。

我正在使用“ mongoose”:“ ^ 5.3.4”,并尝试连接到Mongo DB Atlas 3.6.8中名为'128project'的集群。

这是我用来连接的摘录:

mongoose.connect( uri ,{ useNewUrlParser: true }).catch(function (reason) {
    console.log('error ', reason);
});

我使用的URI正是Mongo Atlas数据库提供的。

我在终端机上明白了

error  { MongoError: setName from ismaster does not match provided connection setName [128project-shard-0] != [128]
    at ReplSetState.update (C:\Users\TAHP TAHP TAHP\Desktop\128test\node_modules\mongodb-core\lib\topologies\replset_state.js:403:14)
    at C:\Users\TAHP TAHP TAHP\Desktop\128test\node_modules\mongodb-core\lib\topologies\replset.js:809:45
    at applyAuthenticationContexts (C:\Users\TAHP TAHP TAHP\Desktop\128test\node_modules\mongodb-core\lib\topologies\replset.js:731:12)
    at Server.<anonymous> (C:\Users\TAHP TAHP TAHP\Desktop\128test\node_modules\mongodb-core\lib\topologies\replset.js:802:7)
    at Object.onceWrapper (events.js:315:30)
    at emitOne (events.js:116:13)
    at Server.emit (events.js:211:7)
    at C:\Users\TAHP TAHP TAHP\Desktop\128test\node_modules\mongodb-core\lib\topologies\server.js:508:16
    at C:\Users\TAHP TAHP TAHP\Desktop\128test\node_modules\mongodb-core\lib\connection\pool.js:532:18
    at _combinedTickCallback (internal/process/next_tick.js:132:7)
    at process._tickCallback (internal/process/next_tick.js:181:9) name: 'MongoError', [Symbol(mongoErrorContextSymbol)]: {} }

任何反馈表示赞赏!

2 个答案:

答案 0 :(得分:0)

您要连接的uri是什么,必须是这种格式

mongodb://username:password@10.0.0.298,10.0.1.299/db_name?replicaSet=replSetName

答案 1 :(得分:0)

为完成起见-在连接到MongoDB 4.2 ReplicaSet时,这也发生在我身上。我从URI中删除了copysetSet = some_name部分,它起作用了。

这是某些驱动程序的已知问题,也请参见this