De acordo com a documentação do Mongoose para MongooseJS
e MongoDB
/ Node.js
:
Quando o aplicativo é iniciado, o Mongoose chama automaticamente
ensureIndex
para cada índice definido no seu esquema. Embora seja bom para o desenvolvimento, recomenda-se que esse comportamento seja desabilitado na produção, pois a criação do índice pode causar um impacto significativo no desempenho. Desative o comportamento definindo aautoIndex
opção do seu esquema como false.
Isso parece instruir a remoção da indexação automática do mangusto antes da implantação para otimizar o Mongoose de instruir o Mongo a percorrer todos os índices na inicialização do aplicativo, o que parece fazer sentido.
Qual é a maneira correta de lidar com a indexação no código de produção? Talvez um script externo deva gerar índices? Ou talvez ensureIndex
seja desnecessário se um único aplicativo for o único leitor / gravador de uma coleção, porque continuará um índice toda vez que ocorrer uma gravação no banco de dados?
Editar: Para complementar, o MongoDB fornece uma boa documentação sobre como fazer a indexação, mas não o porquê ou quando as diretivas de indexação explícitas devem ser feitas. Parece-me que os índices devem ser mantidos atualizados pelos aplicativos do gravador automaticamente nas coleções com os índices existentes, e isso ensureIndex
é realmente algo único (feito quando um novo índice está sendo aplicado); nesse caso, o Mongoose autoIndex
deve ser um no-op em uma reinicialização normal do servidor.