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

Извличане от множество отделни колекции с Express и MongoDB

Използвайте async библиотека, която е най-подходяща за този сценарий. Когато трябва да изпълните множество задачи, които не зависят една от друга и когато всички те завършат, направете нещо друго, трябва да използвате async.parallel() метод. Сигнатурата е async.parallel(tasks, callback) , където tasks е масив от функции.

Той незабавно ще изпълни всички функции паралелно, ще изчака всички те да извикат своята задача и накрая, когато всички задачи са завършени, ще изпълни обратно извикване (последното обратно извикване).

Следният пример демонстрира как това може да бъде адаптирано за вашия случай на употреба:

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. Как се измерва $maxDistance в MongoDB?

  2. Агрегатният конвейер на MongoDB се бави след първата стъпка на съвпадение

  3. Как да конвертирате милисекунди в дата в агрегирането на mongodb?

  4. MongoDB SSL със самоподписани сертификати в Node.js

  5. Функции на MongoDB в ClusterControl 1.4