MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

O mecanismo de descoberta e monitoramento do servidor está obsoleto


Atualizar

O Mongoose 5.7.1 foi lançado e parece corrigir o problema, portanto, configure o useUnifiedTopology opção funcionar como esperado.
mongoose.connect(mongoConnectionString, {useNewUrlParser: true, useUnifiedTopology: true});

Resposta original

Eu estava enfrentando o mesmo problema e decidi mergulhar fundo no código do Mongoose:https://github.com/Automattic/mongoose/search?q=useUnifiedTopology&unscoped_q=useUnifiedTopology

Parece ser uma opção adicionada na versão 5.7 do Mongoose e ainda não está bem documentada. Eu nem consegui encontrá-lo mencionado no histórico da biblioteca https://github.com/Automattic/mongoose/blob/master/History.md

De acordo com um comentário no código:
  • @param {Boolean} [options.useUnifiedTopology=false] False por padrão. Defina como true para aceitar o conjunto de réplicas do driver MongoDB e o mecanismo de monitoramento de cluster fragmentado.

Há também um problema no projeto GitHub sobre este erro:https://github.com/Automattic/mongoose/issues/8156

No meu caso, não uso o Mongoose em um conjunto de réplicas ou cluster fragmentado e, embora a opção deva ser falsa. Mas se for falso, ele reclama que a configuração deve ser verdadeira. Uma vez que é verdade, ainda não funciona, provavelmente porque meu banco de dados não é executado em um conjunto de réplicas ou cluster fragmentado.

Fiz downgrade para 5.6.13 e meu projeto voltou a funcionar bem. Portanto, a única opção que vejo por enquanto é fazer o downgrade e aguardar a atualização da correção para uma versão mais recente.