Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

158
Vistas
¿Por qué recibo un error de desaprobación de createIndex?

Así que estoy usando TypeScript para construir un servidor express usando mongoose para interactuar con MongoDB Atlas . Recientemente, decidí usar varias bases de datos dentro de mi aplicación y cambiar mis esquemas para acomodar esta nueva "arquitectura". Sin embargo, al hacerlo, apareció una deprecation warning :

(nodo: 2096) DeprecationWarning: collection.ensureIndex está en desuso. Utilice createIndexes en su lugar. (Use node --trace-deprecation ... para mostrar dónde se creó la advertencia)

Ya he señalado dónde está ocurriendo el error. Sucede cuando asigno el esquema a un modelo de mangosta.

Código de implementación donde ocurre el error:

 const db = mongoose.connection.useDb("Authentication"); const User = db.model<UserInterface>("User", UserSchema);

Código de implementación donde NO ocurre el error:

 const User = mongoose.model<UserInterface>("User", UserSchema);

Aquí está mi lógica de conexión a mongodb:

 import mongoose from "mongoose"; async function connect() { try { const uri = <string>process.env.MONGO_URI; await mongoose.connect(uri, { useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true, }); console.log("MongoDB Connected..."); return; } catch (err) { process.exit(1); } } export default connect;

Como puede ver, ya tengo useCreateIndex: true , por lo que no sé por qué ocurre el error. El error desaparece cuando agrego esto al esquema, pero no creo que sea una buena solución:

 { timestamps: true, autoIndex: false }

Entonces, ¿qué estoy haciendo mal aquí? ¡Gracias!

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Ok, parece que la solución fue usar mongoose.set(...) antes de usar mongoose.connect(...) . Así que esto hizo que desapareciera mi advertencia de desaprobación:

 import mongoose from "mongoose"; async function connect() { try { const uri = <string>process.env.MONGO_URI; mongoose.set("useNewUrlParser", true); mongoose.set("useUnifiedTopology", true); mongoose.set("useCreateIndex", true); mongoose.set("useFindAndModify", false); await mongoose.connect(uri); console.log("MongoDB Connected..."); return; } catch (err) { process.exit(1); } } export default connect;

Siempre vi a otros configurar estas opciones dentro de la función de conexión, por lo que nunca supe sobre la función de configuración.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda