Según la documentación de Mangosta para MongooseJS
y MongoDB
/ Node.js
:
Cuando se inicia su aplicación, Mongoose llama automáticamente
ensureIndex
a cada índice definido en su esquema. Si bien es bueno para el desarrollo, se recomienda deshabilitar este comportamiento en la producción, ya que la creación de índices puede causar un impacto significativo en el rendimiento. Deshabilite el comportamiento estableciendo laautoIndex
opción de su esquema en falso.
Esto parece instruir la eliminación de la indexación automática de la mangosta antes de implementar para optimizar Mongoose de instruir a Mongo para ir y batir todos los índices en el inicio de la aplicación, lo que parece tener sentido.
¿Cuál es la forma correcta de manejar la indexación en el código de producción? ¿Quizás un script externo debería generar índices? ¿O tal vez ensureIndex
es innecesario si una sola aplicación es el único lector / escritor de una colección porque continuará un índice cada vez que se produzca una escritura DB?
Editar: para complementar, MongoDB proporciona una buena documentación sobre cómo hacer la indexación, pero no por qué o cuándo se deben hacer las directivas de indexación explícitas. Me parece que los índices deben mantenerse actualizados por las aplicaciones de escritor automáticamente en colecciones con índices existentes y eso ensureIndex
es realmente algo más que una vez (hecho cuando se aplica un nuevo índice), en cuyo caso Mongoose autoIndex
debería ser un no operativo bajo un reinicio normal del servidor.