Aktualizacja
Mongoose 5.7.1 zostało wydane i wydaje się naprawiać problem, więc skonfigurowanie useUnifiedTopology
opcja działa zgodnie z oczekiwaniami.
mongoose.connect(mongoConnectionString, {useNewUrlParser: true, useUnifiedTopology: true});
Oryginalna odpowiedź
Miałem ten sam problem i postanowiłem zagłębić się w kod Mongoose:https://github.com/Automattic/mongoose/search?q=useUnifiedTopology&unscoped_q=useUnifiedTopology
Wydaje się, że jest to opcja dodana w wersji 5.7 Mongoose i nie jest jeszcze dobrze udokumentowana. Nie mogłem znaleźć tego nawet w historii biblioteki https://github.com/Automattic/mongoose/blob/master/History.md
Zgodnie z komentarzem w kodzie:
- @param {Boolean} [options.useUnifiedTopology=false] Fałsz domyślnie. Ustaw na
true
aby włączyć zestaw replik sterownika MongoDB i silnik monitorowania klastrów sharded.
Istnieje również problem w projekcie GitHub dotyczący tego błędu:https://github.com/Automattic/mongoose/issues/8156
W moim przypadku nie używam Mongoose w zestawie replik lub klastrze sharded i chociaż opcja powinna być fałszywa. Ale jeśli jest fałszywa, narzeka, że ustawienie powinno być prawdziwe. Raz jest prawdą, że nadal nie działa, prawdopodobnie dlatego, że moja baza danych nie działa na zestawie replik lub klastrze podzielonym na fragmenty.
Zmieniłem wersję na 5.6.13 i mój projekt znów działa poprawnie. Na razie jedyną opcją, jaką widzę, jest obniżenie wersji i poczekanie na aktualizację poprawki do nowszej wersji.