it-swarm.com.de

(Knoten: 63208) DeprecationWarning: collection.ensureIndex ist veraltet. Verwenden Sie stattdessen createIndexes

Woher kommt dieser Fehler? Ich verwende ensureIndex oder createIndex nirgendwo in meiner Nodejs-Anwendung. Ich benutze Garnpackungsmanager.

Hier ist mein Code in 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

Das Problem ist, dass Mungo immer noch collection.ensureIndex verwendet und in naher Zukunft von ihnen aktualisiert werden sollte. Um die Meldung zu beseitigen, können Sie ein Downgrade mit Version 5.2.8 in Ihrer package.json durchführen (und alle Caches löschen. Als letzte Möglichkeit müssen Sie sie deinstallieren und mit npm install [email protected] installieren ):

Mungo: ^ 5.2.8

BEARBEITEN: Ab dieser Bearbeitung befindet sich Mongoose nun in Version 5.4.13. Laut Dokumentation sind dies die Fehlerbehebungen für die veralteten Warnungen ...

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

Ersetzen Sie update () durch updateOne (), updateMany () oder replaceOne ().

Ersetzen Sie remove () durch deleteOne () oder deleteMany ().

Ersetzen Sie count () durch countDocuments (), es sei denn, Sie möchten zählen, wie viele Dokumente sich in der gesamten Sammlung befinden (kein Filter). Verwenden Sie im letzteren Fall estimatedDocumentCount ().

50
user10249973