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
findenLaut 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.