MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да предотвратите добавянето на множество документи към базата данни на mongodb

Проблемът е някъде в съвместимостта на mongoose с тълпата.

Задейства ново събитие „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
  });
});

Трябва да се дължи на начина, по който тълпата изолира глобалните променливи между нишките, по-специално пула на връзките. По подразбиране наборът от връзки на mongoose е 5, което означава, че няма повече от 5 връзки към базата данни наведнъж. Драйверът ги държи отворени и ги използва повторно, за да спести разходи за връзка.

Ако проверите наблюдението на връзките на Atlas, ще видите някои допълнителни 100 връзки, когато стартирате този скрипт.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Създаване на файл в GridFs (MongoDb)

  2. Имената на полетата FieldPath не могат да съдържат '.' когато се опитвате да използвате AGGREGATE

  3. Какво не е наред със заявката за премахване на MongoDB, използвайки mongodb java за подмасив на документ?

  4. Актуализирането на драйвера на Mongodb C# за всички елементи на подмасив е неуспешно, когато масивът е празен

  5. $add с някои полета като Null, връщаща стойност на сумата като Null