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

Nhiều truy vấn bên trong truy vấn mongodb

Hành vi của Node.js là không đồng bộ, lập trình viên phải viết mã xem xét hành vi này. Sử dụng lệnh gọi lại hoặc lời hứa hoặc thư viện điều khiển luồng. Trong chương trình của bạn, bạn đã đặt truy vấn mongo bên trong vòng lặp, đây là một cách tiếp cận truy vấn không tốt. Thay vào đó, nếu truy vấn nhiều lần, hãy sử dụng toán tử $ in. Nó sẽ tối ưu hóa hiệu suất mã của bạn và cũng giải quyết vấn đề gửi phản hồi của bạn.

var resultSet = [];
        db.get('busstopcollection').find({id_bus_stop: parseInt(req.body.busstopid)}, function(e, docs){
            if(e || docs.length === 0) {
                console.log("Sorry, wrong id.");
                return e;
            }
            var bus_ids = [];
            for(var m=0; m<docs.length; m++){
                var auxRes = {};
                auxRes.id_bus = docs[m].id_bus; 
                bus_ids.push(parseInt(docs[m].id_bus)); // collect all ids 
                auxRes.id_bus_stop = docs[m].id_bus_stop;
                auxRes.coord_x = docs[m].coord_x;
                auxRes.coord_y = docs[m].coord_y;               
                auxRes.id_bus_variation = docs[m].id_bus_variation;
                resultSet.push(auxRes);         

            }
            // Query at one time for all document 
            db.get('buscollection').find({id_bus: {$in : bus_ids}}).toArray( function(e, busDocs){
                    // Now find and merge in one go
                    busDocs.forEach(function(eachBusDoc){
                        for(var i=0,len = resultSet.length;i< len;i++){
                            if(resultSet[i].id_bus == busDocs.id_bus ){
                                resultSet[i].s_origin_description = eachBusDoc.s_origin_description;
                                resultSet[i].s_destination_description = eachBusDoc.id_destination_description;
                            }
                        }
                    });             
                       res.send(JSON.stringify(resultSet));
                });
        });


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Php Nhập đệ quy các danh mục vào MongoDB

  2. Xác định lược đồ Mongodb

  3. React.js:Chuỗi HTML thô không được nhận dạng là các phần tử HTML từ Node.js

  4. MongoDb tương đương với nhà văn trong Spring Batch?

  5. DBRefs (tham chiếu Tài liệu Mongo) không được tìm nạp một cách háo hức