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

Come impedire l'aggiunta di più documenti al database mongodb

Il problema sta da qualche parte nella compatibilità mangusta con la folla.

Attiva un nuovo evento "connect" per ogni "thread" e tu elimini il documento su 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 essere dovuto al modo in cui throng isola le variabili globali tra i thread, in particolare il pool di connessioni. Per impostazione predefinita, il pool di connessioni mongoose è 5, il che significa che non ci sono più di 5 connessioni al database alla volta. Il driver li tiene aperti e li riutilizza per risparmiare sui costi di connessione.

Se controlli il monitoraggio delle connessioni Atlas, vedrai alcune 100 connessioni extra quando esegui questo script.