Кажется, мой комментарий был немного неправильно понят, поэтому я уточню.На самом деле не имеет значения, когда вы вызываете его , если он вызывается в какой-то момент, прежде чем вы вызовете find () в первый раз. Другими словами, это не имеет значения, когда вы создаете индексДо тех пор, пока он там, прежде чем вы ожидаете его использовать.
Обычный шаблон, который я часто видел, - это кодирование ensureIndex
в то же время (и в том же месте), что и вызов find()
.ensureIndex
проверит, существует ли индекс, и создаст его, если его нет.Несомненно, есть некоторые издержки (хотя и очень маленькие) при вызове sureindex перед вызовом find (), поэтому желательно этого не делать.
Я вызываю ensureIndex
в коде, чтобы упростить развертывание и избежать необходимости отдельно управлять базой данных и базой кода.Компромисс простоты развертывания уравновешивает избыточность последующих вызовов, чтобы обеспечитьIndex (для меня.)