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

Hent fra flere, separate samlinger med Express og MongoDB

Brug async bibliotek, der er bedst egnet til dette scenarie. Hvor du skal køre flere opgaver, der ikke er afhængige af hinanden, og når de alle er færdige med at gøre noget andet, bør du bruge async.parallel() metode. Signaturen er async.parallel(tasks, callback) , hvor opgaver er en række funktioner.

Den vil straks køre alle funktionerne parallelt, vente på, at de alle kalder deres opgavetilbagekald, og til sidst, når alle opgaver er afsluttet, vil den køre tilbagekald (det sidste tilbagekald).

Følgende eksempel demonstrerer, hvordan dette kunne tilpasses til din brug:

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. Forsøger at starte redis og resque scheduler inden for en rake-opgave

  2. FindAndUpdate Sådan kontrollerer du, om dokumentet virkelig blev opdateret

  3. Læs data fra Redis til Flink

  4. Mongo DB-aggregationsarraystørrelse større end match