sql >> Database teknologi >  >> NoSQL >> MongoDB

Serveropdagelses- og overvågningsmotoren er forældet

Opdater

Mongoose 5.7.1 blev udgivet og ser ud til at løse problemet, så opsætning af useUnifiedTopology option fungerer som forventet.

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

Oprindeligt svar

Jeg stod over for det samme problem og besluttede at dykke i dybden på Mongoose-kode:https://github.com/Automattic/mongoose/search?q=useUnifiedTopology&unscoped_q=useUnifiedTopology

Ser ud til at være en mulighed tilføjet på version 5.7 af Mongoose og ikke veldokumenteret endnu. Jeg kunne ikke engang finde det nævnt i bibliotekshistorikken https://github.com/Automattic/mongoose/blob/master/History.md

Ifølge en kommentar i koden:

  • @param {Boolean} [options.useUnifiedTopology=false] Falsk som standard. Indstil til true at tilmelde sig MongoDB-driverens replikasæt og sharded cluster-overvågningsmotor.

Der er også et problem på projektet GitHub om denne fejl:https://github.com/Automattic/mongoose/issues/8156

I mit tilfælde bruger jeg ikke Mongoose i et replikasæt eller sharded cluster, og selvom indstillingen burde være falsk. Men hvis falsk det klager, bør indstillingen være sand. Når en gang er sandt, virker det stadig ikke, sandsynligvis fordi min database ikke kører på et replikasæt eller en sharded cluster.

Jeg har nedgraderet til 5.6.13, og mit projekt fungerer fint igen. Så den eneste mulighed, jeg ser i øjeblikket, er at nedgradere den og vente på, at rettelsen opdateres til en nyere version.



  1. Hvad betød det egentlig, at MongoDB ikke var ACID-kompatibel før v4?

  2. Kører flere forekomster af Redis på Centos

  3. Håndtering af langvarige operationer i MongoDB

  4. Sådan kontrolleres, om et indeks er skjult i MongoDB