41 votes

Avertissement de dépréciation de MongoDB mongoose

Lors de l'interrogation des documents en utilisant collection.find J'ai commencé à recevoir l'avertissement suivant dans ma console

DeprecationWarning : l'option [fields] de collection.find est obsolète et sera supprimée sera supprimée dans une version ultérieure

Pourquoi est-ce que je vois cela et comment puis-je le réparer ? (Alternatives possibles)

EDIT : Requête ajoutée

Session
        .find({ sessionCode: '18JANMON', completed: false })
        .limit(10)
        .sort({time: 1})
        .select({time: 1, sessionCode: 1});

Mongoose version 5.2.9

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

1voto

Amit Kumar Points 141

mongoose.connect('mongodb://localhost:27017/tablename',{ useUnifiedTopology: true, useNewUrlParser: true,useCreateIndex: true },()=>{ console.log( db connecté ) });

1voto

confused_ Points 57

J'utilise actuellement "mongoose@5.11.15" vous pouvez vous débarrasser du DeprecationWarning en utilisant ceci,

Méthode 1

mongoose.connect("Your DB address", {
useNewUrlParser: true,                       
useUnifiedTopology: true,                 
useCreateIndex: true               // to handle collection.ensureIndex is deprecated
});

Méthode 2

mongoose.connect("Your DB address", {
useNewUrlParser: true,                       
useUnifiedTopology: true,                 // other deprecation warnings            
});
mongoose.set("useCreateIndex", true);     // to handle collection.ensureIndex is deprecated

1voto

Tejveer Bhucker Points 11

Vous pouvez également utiliser --no-deprecation dans l'interface CLI pour ignorer les avertissements de dépréciation.

Je recevais cet avertissement- (node:108) [MONGODB DRIVER] Warning : collection.update is deprecated. Utilisez plutôt updateOne, updateMany ou bulkWrite. En utilisant --no-deprecation, cela fonctionne bien.

Consultez la documentation ici - https://nodejs.org/dist/latest-v10.x/docs/api/cli.html#cli_no_deprecation

0voto

Pawan Bishnoi Points 653

Il suffit de passer les options suivantes lors de la connexion à la base de données

par exemple

const mongoose = require("mongoose");

mongoose.connect("uri",{ 
                       "useNewUrlParser": true,
                       "useUnifiedTopology": true, 
                       "useCreateIndex": true 
                       // other deprecations 
                       },(err)=>{
     // connection logging

}) ;

0voto

Sehrish Waheed Points 61
mongoose.connect(process.env.DATABASE, {
 useNewUrlParser: true,
 useCreateIndex: true,
 useFindAndModify: false,
 useUnifiedTopology: true,
})
.then(() => {
 console.log("DB connected");
})
.catch((err) => console.log(`DB connection Err`, err));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X