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