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

Como impedir que vários documentos sejam adicionados ao banco de dados mongodb


O problema está em algum lugar na compatibilidade do mangusto com a multidão.

Ele dispara um novo evento "connect" para cada "thread" e você exclui o documento em connect https://gist.github.com/wootwoot1234/49cb7d082850d93f8cd03da164644cfb#file-index-js-L100 :
db.once('open', async function() {
  await Message.deleteOne(messageQuery); // <=== remove it from here to fix the problem
  throng({
    worker: start,
    count: 50,
    lifetime: Infinity
  });
});

Deve ser por causa da maneira como o throng isola as variáveis ​​globais entre os encadeamentos, o pool de conexões em particular. Por padrão, o pool de conexões do mongoose é 5, o que significa que não há mais de 5 conexões com o banco de dados por vez. O driver os mantém abertos e reutilizados para economizar no custo de conexão.

Se você verificar o monitoramento de conexões do Atlas, verá algumas 100 conexões extras ao executar este script.