Gemäß der Mongoose- Dokumentation für MongooseJSund MongoDB/ Node.js:
Beim Start Ihrer Anwendung ruft Mongoose automatisch
ensureIndexjeden definierten Index in Ihrem Schema auf. Obwohl dies für die Entwicklung hilfreich ist, wird empfohlen, dieses Verhalten in der Produktion zu deaktivieren, da die Indexerstellung erhebliche Auswirkungen auf die Leistung haben kann. Deaktivieren Sie das Verhalten, indem Sie dieautoIndexOption Ihres Schemas auf false setzen.
Dies scheint die Entfernung der automatischen Indizierung von Mungo vor der Bereitstellung anzuweisen, um Mongoose davon abzuhalten, Mongo anzuweisen, beim Start der Anwendung alle Indizes zu durchsuchen, was sinnvoll erscheint.
Was ist der richtige Weg, um die Indizierung im Produktionscode zu handhaben? Vielleicht sollte ein externes Skript Indizes generieren? Oder ist es möglicherweise ensureIndexunnötig, wenn eine einzelne Anwendung der einzige Leser / Schreiber einer Sammlung ist, weil sie bei jedem DB-Schreibvorgang einen Index fortsetzt?
Edit: Um zu ergänzen, bietet MongoDB gute Dokumentation für die , wie die Indizierung zu tun, aber nicht , warum oder wenn explizite Indexierung Richtlinien durchgeführt werden sollten. Es scheint mir, dass Indizes von Writer-Anwendungen für Sammlungen mit vorhandenen Indizes automatisch auf dem neuesten Stand gehalten werden sollten, und das ensureIndexist eher eine einmalige Sache (erfolgt, wenn ein neuer Index angewendet wird). In diesem Fall sollte Mongoose autoIndexeine sein no-op bei einem normalen Serverneustart.