A conexão deve ser reutilizada pelos seguintes motivos:
- Abrir e fechar conexões de banco de dados em cada solicitação de API é lento.
- É pouco escalável. Supondo que você esteja fazendo algumas solicitações de API simultaneamente por usuário, você atingirá o mesmo limite de conexões rapidamente quando o aplicativo conseguir mais usuários.
Como faço para gerenciar conexões MongoDB em um aplicativo web Node.js?
Padrão
MongoClient
configuração tem o número máximo de conexões por pool (poolSize
) definido como 5
. Portanto, você não deve ver mais de ~5 conexões no MongoDB Atlas se tiver apenas uma instância de aplicativo em execução e verificando se um cliente já está conectado, como você faz. if (!client.isConnected()) {
await client.connect();
}
Observe que o Next.js "reinicia" em cada solicitação no modo de desenvolvimento (
next dev
) e parece que afeta MongoClient
cache e cria muitas conexões. No entanto, no modo de produção, você não deve enfrentar esse problema.