sql >> Databáze >  >> NoSQL >> MongoDB

Jak zabránit přidání více dokumentů do databáze mongodb

Problém spočívá někde v kompatibilitě mongoose s davem.

Vyvolá novou událost „připojit“ pro každé „vlákno“ a při připojení smažete dokument 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
  });
});

Musí to být kvůli způsobu, jakým throng izoluje globální proměnné mezi vlákny, zvláště pak poolem připojení. Ve výchozím nastavení je fond připojení mongoose 5, což znamená, že neexistuje více než 5 připojení k databázi najednou. Ovladač je nechává otevřené a opakovaně je používá, aby ušetřil náklady na připojení.

Pokud zaškrtnete Sledování připojení Atlas, uvidíte při spuštění tohoto skriptu dalších 100 připojení.




  1. Jaký je rozdíl mezi žurnálovou a nežurnálovou databází Mongodb

  2. aktualizovat v mongodb pomocí dotazu $in?

  3. Nodejs + Mongo db se připojí k databázi serveru pomocí uživatelského jména a hesla

  4. Indexy MongoDB na vnořených dokumentech, které se nepoužívají, na základě syntaxe dotazu