MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

जावास्क्रिप्ट में लूप खत्म होने के बाद मैं एक कथन कैसे निष्पादित कर सकता हूं?

देखें async.whilst . आप for . का प्रवाह नियंत्रण चाहते हैं लूप, जिसके लिए यह प्रत्येक लूप पुनरावृत्ति को नियंत्रित करने के लिए कॉलबैक प्रदान करता है।

var temphtml = "",
    j = 0;

async.whilst(
  function() { return j < 3 },
  function(callback) {
    db.austinsroom.find({"y": j }, {}).sort({"x": 1}, function(err, records) 
      temphtml += records.map(function(el) {
          return el.display;
      }).join("") + '<br>';
      j++;
      callback(err);
    });
  },
  function(err) {
     if (err) throw err;
     console.log(temphtml);
  }
)

या तो वह या Promise.all() एकत्रित वादों पर "एक बड़ा परिणाम" वापस करने के लिए। लेकिन आपको promised-mongo पर भी स्विच करना होगा mongojs . से , निकटतम समकक्ष के रूप में, क्योंकि अधिक मोंगोडब ड्राइवर हैं जो वास्तव में वादों का समर्थन करते हैं। वह mongojs . से सिर्फ सीधा कांटा है :

var temphtml = "",
    j = 0,
    promises = [];

for ( var j=0; j < 3; j++ ) {
   promises.push(db.austinsroom.find({"y": j }, {}).sort({"x": 1}).toArray());
   promises.push('<br>');   // this will just join in the output
)

Promise.all(promises).then(function(records) {
    temphtml += records.map(function(el) {
        return el.display;
    }).join("");
})

बिल्कुल वही बात नहीं है, क्योंकि यह एक सूची आउटपुट है और तीन नहीं, लेकिन मुद्दा यह है कि Promise ऑब्जेक्ट तब तक स्थगित रहते हैं जब तक कि वास्तव में हल करने के लिए कॉल नहीं किया जाता है, ताकि आप पैरामीटर्स को लूप में फीड कर सकें, लेकिन बाद में निष्पादित कर सकें।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. प्रत्येक के लिए मोंगोडीबी ()

  2. नेवला एग्रीगेट कमांड का ग्राफ़कॉल एरर रिटर्निंग रिजल्ट

  3. पता लगाएँ कि क्या किसी मान में SQL में कम से कम एक संख्यात्मक अंक है

  4. आईडी सेट द्वारा कई दस्तावेज़ अपडेट करें। नेवला

  5. ग्रुप काउंट 2 आइटम ऑब्जेक्ट ऐरे मोंगोडब