Secondo la documentazione Mongoose per MongooseJSe MongoDB/ Node.js:
All'avvio dell'applicazione, Mongoose chiama automaticamente
ensureIndexogni indice definito nello schema. Sebbene sia utile per lo sviluppo, si consiglia di disabilitare questo comportamento in produzione poiché la creazione dell'indice può causare un impatto significativo sulle prestazioni. Disabilita il comportamento impostando l'autoIndexopzione del tuo schema su false.
Questo sembra istruire la rimozione dell'indicizzazione automatica da mongoose prima della distribuzione per ottimizzare Mongoose dall'istruzione di Mongo di andare a sfornare tutti gli indici all'avvio dell'applicazione, il che sembra avere senso.
Qual è il modo corretto per gestire l'indicizzazione nel codice di produzione? Forse uno script esterno dovrebbe generare indici? O forse ensureIndexnon è necessario se una singola applicazione è l'unico lettore / scrittore di una raccolta perché continuerà un indice ogni volta che si verifica una scrittura su DB?
Modifica: per integrare, MongoDB fornisce una buona documentazione su come eseguire l'indicizzazione, ma non perché o quando dovrebbero essere eseguite le direttive di indicizzazione esplicite. Mi sembra che gli indici debbano essere aggiornati automaticamente dalle applicazioni di scrittura sulle raccolte con indici esistenti e che ensureIndexè davvero più di una cosa una tantum (eseguita quando viene applicato un nuovo indice), nel qual caso Mongoose autoIndexdovrebbe essere un no-op in un normale riavvio del server.