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

नेवला डेटाबेस में कई आइटम जोड़ें

यहाँ मुद्दा यह है कि findOne . में कॉलबैक - आपका beerId beerObjects . में हमेशा अंतिम बियर पर सेट किया जाएगा , क्योंकि आपके पहले कॉलबैक पर पहुंचने से पहले लूप समाप्त हो जाता है - एसिंक्रोनस जावास्क्रिप्ट में आपका स्वागत है।

इसका एक उपाय है अपने findOne . को लपेटना एक IFFE में कोड (तुरंत आमंत्रित फंक्शन एक्सप्रेशन)। बियरऑब्जेक्ट से अगली बियर पर जाने से पहले यह कोड पूरा हो जाएगा।

यहां IFFE के बारे में कुछ और जानकारी दी गई है

IFFE पर स्टैक ओवरफ्लो

मैंने कोड पर एक त्वरित पास लिया, मेरा मानना ​​​​है कि यह काम करना चाहिए, लेकिन आपको आंतरिक कोड के साथ कुछ समायोजन करना पड़ सकता है...

for(var i = 0; i < beerObjects.length; i++) {
    console.log(beerObjects[i].beerId);
    //var currentBeer = beerObjects[i]; dont need this now
    (function (currentBeer) {
        Beer.findOne({ beerId: currentBeer},
            function(err, beer) {
                if(!err && !beer) {
                    var newBeer  = new Beer();
                    newBeer.beerId = currentBeer.beerId;
                    newBeer.name = currentBeer.name;
                    newBeer.description = currentBeer.description;
                    newBeer.abv = currentBeer.abv;
                    newBeer.image = currentBeer.image;
                    newBeer.save(function(err) {
                       // log your error here...
                    });
                } else if(!err) {
                    console.log("Beer is in the system");
                } else {
                    console.log("ERROR: " + err);
                }
            }
        );   
    })(beerObjects[i].beerId);
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नेवला में संग्रह सूची कैसे प्राप्त करें?

  2. $ और/$ या के आधार पर फ़िल्टर करने के लिए MongoDB के लिए एकत्रीकरण का उपयोग कैसे करें?

  3. पंक्ति पुनर्प्राप्ति के बिना MongoTemplate.aggregate निष्पादित करें

  4. MongoDB से कनेक्शन की जाँच करना

  5. मैं मोंगो में सशर्त रूप से किसी दस्तावेज़ को कैसे ऊपर उठा सकता हूं?