MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Le moteur de découverte et de surveillance des serveurs est obsolète

Mettre à jour

Mongoose 5.7.1 a été publié et semble résoudre le problème, donc configurer le useUnifiedTopology l'option fonctionne comme prévu.

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

Réponse originale

J'étais confronté au même problème et j'ai décidé d'approfondir le code Mongoose :https://github.com/Automattic/mongoose/search?q=useUnifiedTopology&unscoped_q=useUnifiedTopology

Semble être une option ajoutée à la version 5.7 de Mongoose et pas encore bien documentée. Je n'ai même pas pu le trouver mentionné dans l'historique de la bibliothèque https://github.com/Automattic/mongoose/blob/master/History.md

Selon un commentaire dans le code :

  • @param {Booléen} [options.useUnifiedTopology=false] Faux par défaut. Définir sur true pour activer l'ensemble de répliques du pilote MongoDB et le moteur de surveillance de cluster partagé.

Il y a aussi un problème sur le projet GitHub à propos de cette erreur :https://github.com/Automattic/mongoose/issues/8156

Dans mon cas, je n'utilise pas Mongoose dans un jeu de répliques ou un cluster fragmenté et bien que l'option soit fausse. Mais s'il est faux, il se plaint, le paramètre doit être vrai. Une fois vrai, cela ne fonctionne toujours pas, probablement parce que ma base de données ne s'exécute pas sur un jeu de répliques ou un cluster fragmenté.

J'ai rétrogradé à 5.6.13 et mon projet fonctionne bien. Donc, la seule option que je vois pour l'instant est de le rétrograder et d'attendre que le correctif soit mis à jour pour une version plus récente.