web-dev-qa-db-fra.com

(node: 63208) DeprecationWarning: collection.ensureIndex est obsolète. Utilisez createIndexes à la place

D'où vient cette erreur? Je n'utilise ni ensureIndex ni createIndex dans mon application Nodejs où que ce soit. J'utilise un gestionnaire de paquets de fils.

Voici mon code dans index.js

import express from 'express';
import path from 'path';
import bodyParser from 'body-parser';
import mongoose from 'mongoose';
import Promise from 'bluebird';

dotenv.config();
mongoose.Promise = Promise;
mongoose.connect('mongodb://localhost:27017/bookworm', { useNewUrlParser: true });

const app = express();
29
aditya kumar

Le problème est que mangouste utilise toujours collection.ensureIndex et devrait être mis à jour par eux dans un proche avenir. Pour supprimer le message, vous pouvez rétrograder à l'aide de la version 5.2.8 de votre package.json (et supprimer les caches, le dernier recours consiste à le désinstaller à l'aide de ) avec npm install [email protected]. ):

"mangouste": "^ 5.2.8"

EDIT: À partir de cette modification, Mongoose est maintenant à la v5.4.13. Selon leur documentation, ce sont les correctifs pour les avertissements de dépréciation ...

mongoose.set('useNewUrlParser', true);
mongoose.set('useFindAndModify', false);
mongoose.set('useCreateIndex', true);

Remplacez update () par updateOne (), updateMany () ou replaceOne ()

Remplacez remove () par deleteOne () ou deleteMany ().

Remplacez count () par countDocuments (), à moins que vous ne vouliez compter le nombre de documents dans la collection complète (pas de filtre). Dans ce dernier cas, utilisez ratedDocumentCount ().

50
user10249973