Zdá se, že můj komentář byl trochu nepochopený, takže to upřesním. Nezáleží na tom, kdy to zavoláte pokud je voláno v určitém okamžiku předtím, než poprvé zavoláte find(). Jinými slovy, nezáleží na tom, kdy index vytvoříte, pokud je tam předtím, než očekáváte, že jej použijete.
Běžným vzorem, který jsem viděl hodně, je kódování ensureIndex
ve stejnou dobu (a na stejném místě) jako find()
volání. ensureIndex
zkontroluje, zda index existuje, a pokud ne, vytvoří jej. Volání secureindex před voláním find() nepochybně znamená určitou režii (ač velmi malou), takže je lepší to nedělat.
Volám ensureIndex
v kódu, abyste zjednodušili nasazení a nemuseli spravovat databázi a kódovou základnu samostatně. Kompromis snadného nasazení vyvažuje nadbytečnost následných volání pro zajištění Indexu (pro mě.)