web-dev-qa-db-ja.com

(ノード:63208)DeprecationWarning:collection.ensureIndexは非推奨です。代わりにcreateIndexesを使用してください

このエラーはどこから来たのですか? NodejsアプリケーションでensureIndexまたはcreateIndexを使用していません。 yarnパッケージマネージャーを使用しています。

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

問題は、 mongoose はまだcollection.ensureIndexを使用しているため、近い将来それらによって更新される必要があるということです。メッセージを削除するには、package.jsonでバージョン5.2.8を使用してダウングレードできます(そして、キャッシュを削除します。最後の手段は、npm install [email protected]でそれをアンインストールすることです) ):

「マングース」:「^ 5.2.8」

EDIT:この編集の時点で、Mongooseはv5.4.13になりました。ドキュメントごとに、これらは非推奨の警告に対する修正です...

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

Update()をupdateOne()、updateMany()、またはreplaceOne()に置き換えます

Remove()をdeleteOne()またはdeleteMany()に置き換えます。

コレクション全体(フィルターなし)に含まれるドキュメントの数をカウントする場合を除き、count()をcountDocuments()に置き換えます。後者の場合は、timatedDocumentCount()を使用します。

50
user10249973