MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Die Engine für die Servererkennung und -überwachung ist veraltet

Aktualisieren

Mongoose 5.7.1 wurde veröffentlicht und scheint das Problem zu beheben, also richten Sie useUnifiedTopology ein Option funktioniert wie erwartet.

mongoose.connect(mongoConnectionString, {useNewUrlParser: true, useUnifiedTopology: true});

Originalantwort

Ich stand vor dem gleichen Problem und beschloss, tiefer in den Mongoose-Code einzutauchen:https://github.com/Automattic/mongoose/search?q=useUnifiedTopology&unscoped_q=useUnifiedTopology

Scheint eine Option zu sein, die in Version 5.7 von Mongoose hinzugefügt wurde und noch nicht gut dokumentiert ist. Ich konnte es nicht einmal im Bibliotheksverlauf https://github.com/Automattic/mongoose/blob/master/History.md

finden

Laut einem Kommentar im Code:

  • @param {Boolean} [options.useUnifiedTopology=false] Standardmäßig falsch. Auf true setzen , um sich für den Replikatsatz und die Sharded-Cluster-Überwachungs-Engine des MongoDB-Treibers anzumelden.

Es gibt auch ein Issue auf dem Projekt GitHub zu diesem Fehler:https://github.com/Automattic/mongoose/issues/8156

In meinem Fall verwende ich Mongoose nicht in einem Replikatsatz oder Sharding-Cluster und obwohl die Option falsch sein sollte. Aber wenn es falsch ist, beschwert es sich, dass die Einstellung wahr sein sollte. Sobald es wahr ist, funktioniert es immer noch nicht, wahrscheinlich weil meine Datenbank nicht auf einem Replikatsatz oder einem Sharding-Cluster ausgeführt wird.

Ich habe auf 5.6.13 heruntergestuft und mein Projekt funktioniert wieder einwandfrei. Die einzige Option, die ich im Moment sehe, besteht darin, sie herunterzustufen und darauf zu warten, dass der Fix für eine neuere Version aktualisiert wird.