ベストプラクティス/最適化に関する質問 私のMongo DB内のいくつかの異なるコレクションを使用するリクエストを処理するとき、リクエストごとに...リクエストが行われるたびに、公式のMongoDB Node.jsドライバを使用して "strict"形式でそれを取得するのは効率的です。それとも、将来のすべての要求に対してコレクションの参照を保持して保存する必要がありますか。私が最も頻繁に使用するMongoコレクションオブジェクトを便利に保つことには(私には予想できない)いくつかの利点がありますか?それとも、Node.jsアプリのvarにそれらを保存することで私が走る危険性はありますか?パフォーマンスの観点からも、予期しない結果の観点からも、私は両方とも質問しています。
回答:
回答№1は0厳密モードがアクティブなコレクションを取得した場合、ドライバは、取得しようとしているコレクションが実際に存在するかどうかを判断するためにいくつかの手順を実行します。私が見ることができる限り、これに対するオーバーヘッドは余分なデータベース要求です。
それで、あなたは2つのことをすることができます:
- コレクションが存在することを確認したら、厳密モードをオフにします。
db.collection("yourcollection")
(コールバックなしで、非厳密モードで)最小限になります。 - 厳密モードでコレクションを取得し、保存しますグローバルに(または「アクセスしやすい」)どこかで再利用してください。私が関わる唯一の危険性はあなたのアプリがまだそれを参照している間にデータベースからコレクションが削除されるときだと思いますが、その危険性はおそらくどんなクエリも失敗するかもしれないということだけを伴うでしょう。
私はMongoDBドライバ(Mongooseユーザー自身)にはあまり慣れていないので、私の意見は主にそのコードとドキュメントを読むことに基づいています。