sql >> Database >  >> NoSQL >> MongoDB

Hoe te voorkomen dat meerdere documenten aan de mongodb-database worden toegevoegd?

Het probleem ligt ergens in de compatibiliteit van mangoesten met massa.

Het start een nieuwe "connect"-gebeurtenis voor elke "thread" en u verwijdert het document op 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
  });
});

Het moet zijn vanwege de manier waarop menigte globale variabelen isoleert tussen threads, met name verbindingspools. Standaard is de mongoose-verbindingspool 5, wat betekent dat er niet meer dan 5 verbindingen met de database tegelijk zijn. De driver houdt ze open en hergebruikt om verbindingskosten te besparen.

Als u Atlas-verbindingen controleert, ziet u ongeveer 100 extra verbindingen wanneer u dit script uitvoert.




  1. MongoDB-verschil tussen DateTime-object en YYYY-MM-DD string

  2. Java+Redis versus gewone Java-efficiëntie voor data-intensieve toepassingen?

  3. Mongodb - bevraag de totalen van vandaag, de totalen van de week en de totalen van de maand in één zoekopdracht

  4. Redis lua-script werkt niet