sql >> データベース >  >> NoSQL >> MongoDB

スキーマメソッドを使用してMongooseForループにアイテムを保存する

    配列内のアイテムに対して同じ非同期タスクを実行する必要がある場合は、通常のforループを使用しないでください。 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. 2つ以上のソートされたセットの交差

    2. マングースデザインモデルの埋め込みドキュメントと参照?

    3. コマンドラインからredis-serverをシャットダウンします

    4. 部分インデックスの制限は何ですか?