Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

294
Views
El motor de detección y supervisión del servidor está en desuso

Estoy usando Mongoose con mi aplicación Node.js y esta es mi configuración:

 mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true, useFindAndModify: false }).then(()=>{ console.log(`connection to database established`) }).catch(err=>{ console.log(`db error ${err.message}`); process.exit(-1) })

pero en la consola me sigue dando el aviso:

DeprecationWarning: el motor actual de supervisión y detección de servidores está obsoleto y se eliminará en una versión futura. Para utilizar el nuevo motor de detección y supervisión de servidores, pase la opción { useUnifiedTopology: true } al constructor de MongoClient.

¿Cuál es el problema? No estaba usando useUnifiedTopology antes, pero ahora aparece en la consola. Lo agregué a la configuración pero todavía me da esta advertencia, ¿por qué? Ni siquiera uso MongoClient .

Editar

Como respondió Felipe Plets, había un problema en Mongoose y arreglaron este error en versiones posteriores. Entonces puede resolver el problema actualizando la versión de mangosta.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Actualizar

Mongoose 5.7.1 se lanzó y parece solucionar el problema, por lo que configurar la opción useUnifiedTopology funciona como se esperaba.

 mongoose.connect(mongoConnectionString, {useNewUrlParser: true, useUnifiedTopology: true});

respuesta original

Estaba enfrentando el mismo problema y decidí profundizar en el código Mongoose: https://github.com/Automattic/mongoose/search?q=useUnifiedTopology&unscoped_q=useUnifiedTopology

Parece ser una opción agregada en la versión 5.7 de Mongoose y aún no bien documentada. Ni siquiera pude encontrarlo mencionado en el historial de la biblioteca https://github.com/Automattic/mongoose/blob/master/History.md

Según un comentario en el código:

  • @param {Boolean} [options.useUnifiedTopology=false] Falso de forma predeterminada. Establézcalo en true para optar por el conjunto de réplicas del controlador MongoDB y el motor de supervisión de clúster fragmentado.

También hay un problema en el proyecto GitHub sobre este error: https://github.com/Automattic/mongoose/issues/8156

En mi caso, no uso Mongoose en un conjunto de réplicas o un clúster fragmentado y, aunque la opción debería ser falsa. Pero si es falso, la configuración debería ser verdadera. Una vez que es cierto, todavía no funciona, probablemente porque mi base de datos no se ejecuta en un conjunto de réplicas o en un clúster fragmentado.

Bajé a 5.6.13 y mi proyecto volvió a funcionar bien. Entonces, la única opción que veo por ahora es degradarlo y esperar a que la solución se actualice para una versión más nueva.

over 4 years ago · Santiago Trujillo Report

0

En mongoDB, dejaron de usar el paquete de monitoreo de motor y servidor actual, por lo que debe usar un nuevo paquete de monitoreo de motor y servidor. Entonces solo usas

{ usar Topología unificada: verdadero }

 mongoose.connect("paste db link", {useUnifiedTopology: true, useNewUrlParser: true, useCreateIndex: true });
over 4 years ago · Santiago Trujillo Report

0

Esto resolvió mi problema.

 const url = 'mongodb://localhost:27017'; const client = new MongoClient(url, {useUnifiedTopology: true});
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!