MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Beberapa kueri di dalam kueri mongodb

Perilaku Node.js tidak sinkron, programmer harus membuat kode dengan mempertimbangkan perilaku ini. Gunakan panggilan balik atau janji atau pustaka kontrol aliran . Dalam program Anda , Anda telah menempatkan kueri mongo di dalam loop , yang merupakan pendekatan kueri yang buruk . Alih-alih jika menanyakan beberapa kali, gunakan $in operator. Ini akan mengoptimalkan kinerja kode Anda dan memecahkan masalah pengiriman respons Anda juga.

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. Kueri gagal dengan kode kesalahan 13 dan pesan kesalahan 'tidak diotorisasi pada [db] untuk menjalankan perintah { temukan:

  2. JSON .NET Custom Name Resolver untuk Sub-Properti

  3. Bagaimana cara menangani tanggal yang disimpan sebagai string di Mongodb?

  4. MongoDB tidak dapat memulai server:Mesin penyimpanan default 'wiredTiger' tidak tersedia dengan build mongod ini

  5. Menghubungkan Spark ke Beberapa Koleksi Mongo