0

ベスト プラクティス/最適化の質問: Mongo DB でいくつかの異なるコレクションを使用するリクエストをリクエストごとに処理する場合、公式の MongoDB Node.js ドライバーを使用して「厳密な」フォームで取得するのは効率的ですか? 非効率的ですか?リクエストの時間は?それとも、将来のすべてのリクエストのためにコレクション参照を保持して保存する必要がありますか? 私が最も頻繁に使用する Mongo コレクション オブジェクトを手元に置いておくことには、(私には予想外の) 利点がありますか? または、Node.js アプリの var にそれらを保存するリスクはありますか? パフォーマンスの観点と、予期しない結果の観点の両方から質問しています。

4

1 に答える 1

0

厳密モードがアクティブなコレクションを取得すると、ドライバーはいくつかの手順を実行して、取得しようとしているコレクションが実際に存在するかどうかを判断します。私が見る限り、これのオーバーヘッドは追加のデータベース リクエストです。

したがって、次の 2 つのことができます。

  • コレクションが存在することが確実な場合は、厳密モードをオフにします。db.collection('yourcollection')just (非厳密モードでのコールバックなし)のオーバーヘッドは最小限だと思います。
  • コレクションを厳密モードで取得し、グローバルに(または「アクセス可能」に)どこかに保存して、再利用します。関連する唯一のリスクは、アプリがまだコレクションを参照している間にコレクションがデータベースから削除された場合だと思いますが、おそらくクエリが失敗する可能性があるだけです。

私は MongoDB ドライバー (Mongoose ユーザー自身) にあまり詳しくないことを認めなければならないので、私の意見は主にそのコードとドキュメントを読んだことに基づいています ;)

于 2013-10-16T12:15:12.983 に答える