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

353
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!

over 4 years ago · Santiago Trujillo
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.

over 4 years ago · Santiago Trujillo 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