私のコメントは少し誤解されているようですので、はっきりさせておきます。初めてfind()を呼び出す前のある時点で呼び出される限り、いつ呼び出すかは重要ではありません。 つまり、インデックスを作成するときに、使用する前にインデックスが存在する限り、インデックスを作成するかどうかは重要ではありません。
私がよく目にする一般的なパターンは、ensureIndex
のコーディングです。 find()
と同時に(そして同じ場所で) 電話。 ensureIndex
インデックスが存在するかどうかを確認し、存在しない場合は作成します。 find()を呼び出す前にensureindexを呼び出すことには、間違いなくある程度のオーバーヘッドがあります(非常に小さいですが)。したがって、これを行わないことが望ましいです。
私はensureIndex
を呼び出します デプロイメントを簡素化し、データベースとコードベースを別々に管理する必要をなくすためのコードで。デプロイメントの容易さのトレードオフは、ensureIndex(私にとって)への後続の呼び出しの冗長性のバランスを取ります。