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

नोड नेवला लूप में क्वेरी ढूंढता है जो काम नहीं कर रहा है

async-land में आपका स्वागत है :-)

जावास्क्रिप्ट के साथ आपके कोड को छोड़कर समानांतर में कुछ भी होता है। इसका मतलब है कि आपके विशिष्ट मामले में, आपके लूप के समाप्त होने से पहले कॉलबैक को लागू नहीं किया जा सकता है। आपके पास दो विकल्प हैं:

a) अपने लूप को सिंक फॉर-लूप से async रिकर्स-लूप में फिर से लिखें:

function asyncLoop( i, callback ) {
    if( i < answers.length ) {
        console.log(i)
        var question_ans = eval('(' + answers[i]+ ')');

        var question_to_find = question_ans.question.toString()
        var ans = question_ans.ans.toString()
        console.log(ans)
        quiz.where("question",question_to_find).exec(function(err,results)  {
            console.log(ans, results)
            if (ans == "t") {
                user_type = results.t  
            } else if (ans == "f") {
                user_type=results.f      
            }
            asyncLoop( i+1, callback );
        })
    } else {
        callback();
    }
}
asyncLoop( 0, function() {
    // put the code that should happen after the loop here
});

इसके अतिरिक्त मैं इस ब्लॉग के अध्ययन की अनुशंसा करता हूं। इसमें एसिंक-लूप-सीढ़ी के दो और चरण हैं। बहुत मददगार और बहुत महत्वपूर्ण।

बी) अपने एसिंक फ़ंक्शन कॉल को प्रारूप के साथ बंद करें

(function( ans ) {})(ans);

और इसे वह वेरिएबल प्रदान करें जिसे आप रखना चाहते हैं (यहां:ans ):

for (var i=0;i < answers.length;i++) {
    console.log(i)
    var question_ans = eval('(' + answers[i]+ ')');

    var question_to_find = question_ans.question.toString()
    var ans = question_ans.ans.toString()
    console.log(ans)
    (function( ans ) {
        quiz.where("question",question_to_find).exec(function(err,results)  {
            console.log(ans, results)
            if (ans == "t") {
                user_type = results.t  
            } else if (ans == "f") {
                user_type=results.f      
            }
        })
    })(ans);
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. उल्का उत्पादन डेटाबेस तक पहुंचना

  2. mongodb पर .bson फ़ाइल स्वरूप आयात कैसे करें

  3. कैसे शुरू होने पर MongoDB कंटेनर के लिए एक DB बनाने के लिए?

  4. Model.find().toArray() .toArray() विधि नहीं होने का दावा करते हुए

  5. मैं mongodb से node.js (और प्रमाणित) के साथ कैसे जुड़ूं?