Согласно документации Mongoose для MongooseJSи MongoDB/ Node.js:
Когда ваше приложение запускается, Mongoose автоматически вызывает
ensureIndexкаждый определенный индекс в вашей схеме. Хотя это удобно для разработки, рекомендуется отключить это поведение в производственной среде, поскольку создание индекса может существенно повлиять на производительность. Отключите поведение, установив дляautoIndexпараметра вашей схемы значение false.
Похоже, что это указывает на удаление автоматической индексации из мангуста перед развертыванием, чтобы оптимизировать Mongoose от указания Mongo пройти и перебрать все индексы при запуске приложения, что, кажется, имеет смысл.
Как правильно обрабатывать индексацию в производственном коде? Может, внешний скрипт должен генерировать индексы? Или, может быть, ensureIndexэто не нужно, если одно приложение является единственным средством чтения / записи коллекции, потому что оно будет продолжать индексировать каждый раз, когда происходит запись в БД?
Изменить: в дополнение, MongoDB предоставляет хорошую документацию о том, как выполнять индексацию, но не почему и когда должны выполняться явные директивы индексации. Мне кажется, что приложения-писатели должны автоматически обновлять индексы в коллекциях с существующими индексами, и это ensureIndexдействительно больше одноразовая вещь (выполняется, когда применяется новый индекс), и в этом случае Mongoose autoIndexдолжен быть no-op при обычном перезапуске сервера.