Повторно публикуване от https://jira.mongodb.org/browse/NODE-1868:
Съобщенията за оттегляне са вероятно, защото client.connect
се извиква многократно. Като цяло, извикване на client.connect
няколко пъти в момента (от драйвер v3.1.13
) има недефинирано поведение и не се препоръчва. Важно е да се отбележи, че след като обещанието се върне от connect
разрешава, клиентът остава свързан, докато не извикате client.close
:
const client = new MongoClient(...);
client.connect().then(() => {
// client is now connected.
return client.db('foo').collection('bar').insertOne({
}).then(() => {
// client is still connected.
return client.close();
}).then(() => {
// client is no longer connected. attempting to use it will result in undefined behavior.
});
Клиентът по подразбиране поддържа множество връзки към всеки сървър, към който е свързан, и може да се използва за множество едновременни операции*. Би трябвало да е добре да стартирате client.connect
веднъж и след това изпълнете операциите си върху клиентския обект
* Имайте предвид, че клиентът НЕ е безопасен за нишки или разклонения, така че не може да бъде споделен между разклонения и не е съвместим с cluster
на възел или worker_threads
модули.