Mise à jour :
La version 5.2.10 est disponible et peut être téléchargée. aquí .
Pour plus d'informations sur les docs, vous pouvez consulter la page https://mongoosejs.com/docs/deprecations
Pour plus d'informations sur ce problème et sa résolution https://github.com/Automattic/mongoose/issues/6880
Réponse originale :
La version 5.2.9 de Mongoose a mis à niveau le pilote natif mongodb vers la version 3.1.3 dans laquelle des modifications ont été ajoutées afin d'envoyer des messages d'avertissement lorsque la méthode dépréciée du pilote natif est appelée.
fields
est dépréciée et est remplacée par projection
option.
Vous devrez attendre que Mongoose apporte des modifications de son côté pour remplacer l'option de champs par la projection. La correction est prévue pour la version 5.2.10.
Pour l'instant, vous pouvez revenir à la version 5.2.8 qui supprimera tous les avertissements de dépréciation.
npm install mongoose@5.2.8
Pour tous les autres avertissements dépréciés, vous devez les aborder au cas par cas.
Vous verrez d'autres avertissements de dépréciation lorsque vous utiliserez d'autres méthodes de collecte.
DeprecationWarning: collection.findAndModify is deprecated. Use findOneAndUpdate, findOneAndReplace or findOneAndDelete instead.
DeprecationWarning: collection.remove is deprecated. Use deleteOne, deleteMany, or bulkWrite instead.
DeprecationWarning: collection.update is deprecated. Use updateOne, updateMany, or bulkWrite instead.
DeprecationWarning: collection.save is deprecated. Use insertOne, insertMany, updateOne, or updateMany instead.
DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
Tous findOne*
Par défaut, les méthodes d'écriture de Mongoose utilisent le findAndModify
qui est obsolète dans le pilote natif de mongodb.
Utilisez mongoose.set('useFindAndModify', false);
pour que mongooose appelle le service approprié findOne*
sur le pilote natif de mongodb.
Pour remove
y update
remplacer ces appels par delete*
y update*
respectivement.
Pour save
remplacer ces appels par insert*
/ update*
respectivement.
Utilisez mongoose.set('useCreateIndex', true);
pour que mongooose appelle le createIndex
sur le pilote natif de mongodb.
0 votes
Avez-vous essayé d'utiliser collection.find(query).limit(1).project({name:1}) ?
0 votes
Bonjour @DanieleTassone à chaque fois que j'utilise find() cet avertissement apparaît
0 votes
Pourriez-vous afficher votre requête complète
1 votes
Le pilote mongodb natif est un élément que Mongoose utilise en interne pour traiter avec MongoDB. Si Mongoose ne respecte pas certaines nouvelles "règles", un avertissement est renvoyé. Avec le pilote natif, vous recevrez cet avertissement si vous utilisez "fields option" au lieu de la fonction curseur par exemple. Jetez un coup d'oeil ici : github.com/Automattic/mongoose/issues/6667
1 votes
Il y a un problème sur github est ouvert... Donc jusqu'à ce que ce problème soit résolu, vous pouvez utiliser la version Mangouste. 5.2.8
0 votes
Faites-moi savoir si vous avez besoin d'aide pour rétrograder à la version 5.2.8.
npm install mongoose@5.2.8
devrait fonctionner. Le site fixer a déjà été fusionné à master. La version 5.2.10 devrait donc comporter ce correctif lorsqu'elle sera publiée.0 votes
Merci @Veeram :)