1. ホーム
  2. node.js

[解決済み] (node:63208) DeprecationWarning: collection.ensureIndex は非推奨です。代わりにcreateIndexesを使用してください [重複]。

2022-02-03 02:54:15

質問

このエラーはどこから発生するのでしょうか?私は ensureIndex または createIndex を私のNodejsアプリケーションのどこにでも入れることができます。私は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();

解決方法は?

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

"mongoose": "^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() に置き換えてください。後者の場合は estimatedDocumentCount() を使用します。