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

स्कीमा विधियों के साथ लूप के लिए नेवला में आइटम सहेजा जा रहा है

जब आपको किसी सरणी में आइटम के लिए समान एसिंक्रोनस कार्य करना होता है, तो लूप के लिए नियमित का उपयोग न करें। async.each देखें , यह आपके परिदृश्य में बेहतर फिट बैठता है, जैसे (बस else आपके कोड का हिस्सा):

var body = JSON.parse(response.body);

async.each(body.data, function (photoData, callback) {

  // ------------------------------------------------
  // If there is no caption, skip it
  //

  if (!photoData.caption){
    text = '';
  }
  else{
    text = photoData.caption;
  }

  // ------------------------------------------------
  // Create new photo object
  //

  var photo = new Photo({
    link: photoData.link,
    username: photoData.user.username,
    profilePicture: photoData.user.profile_picture,
    imageThumbnail: photoData.images.thumbnail.url,
    imageFullsize: photoData.images.standard_resolution.url,
    caption: text,
    userId: photoData.user.id,
    date: photoData.created_time,
    _id: photoData.id
  });

  photo.checkBlacklist(function(err, blacklist){

    if (!blacklist){
      photo.save(function(err, item){
        if (err){
          console.log(err);
        }

        console.log('Saved', item);
        callback();
      });
    }

  });

}, function (error) {
  if (error) res.json(500, {error: error});

  console.log('Photos saved');
  return res.json(201, {msg: 'Photos updated'} );
});

इंस्टॉल करना न भूलें

npm install async

और async . की आवश्यकता है :

var async = require('async');


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. प्रमाणीकरणडेटाबेस व्यवस्थापक के बिना एक मोंगोडब उदाहरण से कनेक्ट करें

  2. MongoDB/Mongoose अनुक्रमणिका क्वेरी को तेज़ या धीमा कर देती है?

  3. $ mongodb में 2 नेस्टेड स्तर तक फ़िल्टर करें

  4. स्प्रिंग डेटा के साथ विशिष्ट आइटम देखते समय केवल कुछ फ़ील्ड का पर्दाफाश करें?

  5. एक क्षेत्र पर अनुक्रमण जो उप-दस्तावेजों की सरणी में है