MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak mogę wykonać instrukcję PO zakończeniu pętli w javascript?

Zobacz async.whilst . Chcesz kontrolować przepływ for pętla, dla której zapewnia wywołanie zwrotne do kontrolowania każdej iteracji pętli.

var temphtml = "",
    j = 0;

async.whilst(
  function() { return j < 3 },
  function(callback) {
    db.austinsroom.find({"y": j }, {}).sort({"x": 1}, function(err, records) 
      temphtml += records.map(function(el) {
          return el.display;
      }).join("") + '<br>';
      j++;
      callback(err);
    });
  },
  function(err) {
     if (err) throw err;
     console.log(temphtml);
  }
)

Albo to, albo użyj Promise.all() na zebranych obietnicach zwrotu „jeden wielki wynik”. Ale musiałbyś również przejść na promised-mongo z mongojs , jako najbliższy odpowiednik, ponieważ istnieje więcej sterowników mongodb, które faktycznie obsługują obietnice. Ten jest po prostu bezpośrednim rozwidleniem z mongojs :

var temphtml = "",
    j = 0,
    promises = [];

for ( var j=0; j < 3; j++ ) {
   promises.push(db.austinsroom.find({"y": j }, {}).sort({"x": 1}).toArray());
   promises.push('<br>');   // this will just join in the output
)

Promise.all(promises).then(function(records) {
    temphtml += records.map(function(el) {
        return el.display;
    }).join("");
})

Nie dokładnie to samo, ponieważ jest to jedno wyjście listy, a nie trzy, ale chodzi o to, że Promise obiekty odraczają się, dopóki nie zostaną wywołane w celu rozwiązania, więc możesz podać parametry w pętli, ale wykonać je później.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak zaprojektować zaktualizowane wartości tylko za pomocą findOneAndUpdate we wbudowanej tablicy Mongoose?

  2. Indeksowanie Mongo na tablicach obiektów a obiekty

  3. jak uzyskać prawidłowe uwierzytelnianie mongodb?

  4. Aplikacja działa w fazie rozwoju, ale nie po wdrożeniu w heroku

  5. Mongodb Czy można agregować obiekt?