web-dev-qa-db-ja.com

MongoDBをnodejsに接続しているときに、ReplicaSetNoPrimaryおよびMongoServerSelectionErrorエラーが発生する

私はmongodbに接続しようとしていますが、エラーを下回っていますので助けてください

var mongo = require('mongodb').MongoClient;
mongo.connect('mongodb://usernamexyz:[email protected]:47017/sampleDB?replicaSet=NAME_2436&readPreference=primary&authSource=admin&w=1', { useNewUrlParser: true, useUnifiedTopology: true  })
.then(() => console.log("Mongodb connected"))
.catch(err => console.log(err));

そして、以下のように私が得ているエラー

MongoServerSelectionError: connection <monitor> to 155.30.360.129:37017 closed
    at Timeout._onTimeout (C:\Fintech\NodeFirstApp\node_modules\mongodb\lib\core\sdam\topology.js:448:30)
    at listOnTimeout (internal/timers.js:531:17)
    at processTimers (internal/timers.js:475:7) {
  name: 'MongoServerSelectionError',
  reason: TopologyDescription {
    type: 'ReplicaSetNoPrimary',
    setName: null,
    maxSetVersion: null,
    maxElectionId: null,
    servers: Map {
      'hostmxy-mw-e6-u1238.nam.nsroot.net:47017' => [ServerDescription]
    },
    stale: false,
    compatible: true,
    compatibilityError: null,
    logicalSessionTimeoutMinutes: null,
    heartbeatFrequencyMS: 10000,
    localThresholdMS: 15,
    commonWireVersion: null
  },
  [Symbol(mongoErrorContextSymbol)]: {}
}
4
user2454202

私も同じエラーが出ました。別の無線LANを使用していた。しかし、以前使用していたのと同じwifiでラップトップを接続すると、mongodbが再び接続しました。

0
Mr Jay

MongoDBアトラスに接続しているときにも同じエラーが発生しました。あなたは以下のことをしなければなりません。 1.システムのファイアウォールで送信ポート27015-27017を許可します。 2.最新のMongoDBとNodeJを更新します。 3.ネットワークアクセスの下で、MongoDBアトラスクラスターのシステムIPをホワイトリストに登録します。

それは私のために働いた。私もそれがあなたのために働くことを望みます。

0
Manoj Patidar

クラスターを作成したMongodbに移動し、ipwhitelistの下で[IPアドレスの編集]ボタンをクリックして[Add ccurrent IP address]を選択します

これは私のために働いた

0

MRジェイが言ったように、これは、IPアドレスがAtlasアカウントに登録されているものと異なる場合にも発生します(たとえば、静的IPを使用していない場合)。

MongoDB Atlasアカウントの「ネットワークアクセス」を確認し、現在のIPと比較します。

0
JonathanT