sql >> Database >  >> NoSQL >> MongoDB

Serverdetectie en -bewakingsengine is verouderd

Bijwerken

Mongoose 5.7.1 is uitgebracht en lijkt het probleem op te lossen, dus het instellen van de useUnifiedTopology optie werkt zoals verwacht.

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

Oorspronkelijk antwoord

Ik werd met hetzelfde probleem geconfronteerd en besloot me te verdiepen in Mongoose-code:https://github.com/Automattic/mongoose/search?q=useUnifiedTopology&unscoped_q=useUnifiedTopology

Het lijkt een optie te zijn die is toegevoegd aan versie 5.7 van Mongoose en nog niet goed gedocumenteerd is. Ik kon het niet eens vinden in de bibliotheekgeschiedenis https://github.com/Automattic/mongoose/blob/master/History.md

Volgens een opmerking in de code:

  • @param {Boolean} [options.useUnifiedTopology=false] Standaard niet waar. Instellen op true om u aan te melden voor de replicaset van het MongoDB-stuurprogramma en de bewakingsengine voor shard-clusters.

Er is ook een probleem op het project GitHub over deze fout:https://github.com/Automattic/mongoose/issues/8156

In mijn geval gebruik ik Mongoose niet in een replicaset of shard-cluster en hoewel de optie onwaar zou moeten zijn. Maar als het onwaar is, klaagt het dat de instelling waar moet zijn. Als het eenmaal waar is, werkt het nog steeds niet, waarschijnlijk omdat mijn database niet op een replicaset of shard-cluster draait.

Ik heb gedowngraded naar 5.6.13 en mijn project werkt weer prima. Dus de enige optie die ik nu zie, is om het te downgraden en te wachten tot de fix is ​​bijgewerkt voor een nieuwere versie.



  1. Redis C# - Incr-waarde gebruiken in een transactie

  2. MongoDB Embedded Objects hebben geen ID (null-waarde)

  3. Redis-cli --csv optie (exporteren naar csv)

  4. Update in forEach op mongodb shell