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

Hvornår skal MongoDB-databaseforbindelsen lukkes i Nodejs

Her er en potentiel løsning baseret på tællemetoden (jeg har ikke testet den, og der er ingen fejlfældelse, men den burde formidle ideen).

Den grundlæggende strategi er:Indhent optællingen af, hvor mange poster der skal opdateres, gem hver post asynkront og et tilbagekald ved succes, hvilket vil formindske optællingen og lukke DB'en, hvis optællingen når 0 (når den sidste opdatering afsluttes). Ved at bruge {safe:true} vi kan sikre, at hver opdatering er vellykket.

Mongo-serveren vil bruge én tråd pr. forbindelse, så det er godt at enten a) lukke ubrugte forbindelser, eller b) samle/genbruge dem.

db.open(function (err, db) {
  db.collection('foo', function (err, collection) {
    var cursor = collection.find({});
    cursor.count(function(err,count)){
      var savesPending = count;

      if(count == 0){
        db.close();
        return;
      }

      var saveFinished = function(){
        savesPending--;
        if(savesPending == 0){
          db.close();
        }
      }

      cursor.each(function (err, doc) {
        if (doc != null) {
          doc.newkey = 'foo'; // Make some changes
          db.save(doc, {safe:true}, saveFinished);
        }
      });
    })
  });
});


  1. Array-undersæt i aggregeringsramme-pipeline

  2. Benchmark Apache HBase vs Apache Cassandra på SSD i et cloudmiljø

  3. Perfektion af kunsten at automatisere og administrere de mest populære Open Source-databaser:2017 @ Severalnines

  4. Hvordan opretter man et indlejret indeks i MongoDB?