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

Pobieraj z wielu oddzielnych kolekcji za pomocą Express i MongoDB

Użyj async biblioteka, która najlepiej pasuje do tego scenariusza. Tam, gdzie musisz uruchomić wiele zadań, które nie są od siebie zależne, a kiedy wszystkie skończą robić coś innego, powinieneś użyć async.parallel() metoda. Sygnatura to async.parallel(tasks, callback) , gdzie zadania to tablica funkcji.

Natychmiast uruchomi wszystkie funkcje równolegle, poczeka, aż wszystkie wywołają swoje zadanie, a na koniec, gdy wszystkie zadania zostaną zakończone, uruchomi wywołanie zwrotne (końcowe wywołanie zwrotne).

Poniższy przykład pokazuje, jak można to dostosować do przypadku użycia:

router.get('/profile', function(req, res, next) {
    mongo.connect(url, function(err, db) {
        var locals = {};
        var tasks = [
            // Load users
            function(callback) {
                db.collection('users').find({}).toArray(function(err, users) {
                    if (err) return callback(err);
                    locals.users = users;
                    callback();
                });
            },
            // Load colors
            function(callback) {
                db.collection('colors').find({}).toArray(function(err, colors) {
                    if (err) return callback(err);
                    locals.colors = colors;
                    callback();
                });
            }
        ];

        async.parallel(tasks, function(err) { //This function gets called after the two tasks have called their "task callbacks"
            if (err) return next(err); //If an error occurred, let express handle it by calling the `next` function
            // Here `locals` will be an object with `users` and `colors` keys
            // Example: `locals = {users: [...], colors: [...]}`
            db.close();
            res.render('profile/index', locals);
        });
    });
});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose findOneAndUpdate i runValidators nie działają

  2. Dokument podrzędny Mongoose przed usunięciem oprogramowania pośredniczącego, które nie jest wywoływane

  3. MongooseJS/MongoDB wyszukaj dokładną frazę

  4. Mongodb różni się w polu tablicy z zapytaniem o wyrażenie regularne?

  5. Jak zapisać wynik zapytania (pojedynczy dokument) w zmiennej?