MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Tìm nạp từ nhiều bộ sưu tập riêng biệt với Express và MongoDB

Sử dụng async thư viện phù hợp nhất cho tình huống này. Trường hợp bạn cần chạy nhiều tác vụ không phụ thuộc vào nhau và khi tất cả chúng hoàn thành, hãy làm việc khác, bạn nên sử dụng async.parallel() phương pháp. Chữ ký là async.parallel(tasks, callback) , trong đó các nhiệm vụ là một mảng các chức năng.

Nó sẽ ngay lập tức chạy tất cả các chức năng song song, đợi tất cả chúng thực hiện lệnh gọi lại tác vụ của chúng và cuối cùng khi tất cả các tác vụ hoàn thành nó sẽ chạy lệnh gọi lại (lệnh gọi lại cuối cùng).

Ví dụ sau minh họa cách điều này có thể được điều chỉnh cho trường hợp sử dụng của bạn:

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. Nhà điều hành đường ống tổng hợp MongoDB $ type

  2. MGO:Không thể chuẩn hóa truy vấn:Toán tử không xác định BadValue:$ meta

  3. MongoDB và Google Cloud Chức năng VPC Peering?

  4. MongoDB $ addToSet

  5. Làm cách nào để thêm các đối tượng mới bên trong mảng lồng nhau cho mongodb bằng cách sử dụng node.js?