2016-07-03 6 views
2

データを保存して検証するためにasyncで配列を処理しました。これは私が処理してるものです:私はこの配列をループして1による結果の1を保存していmongoose save async.eachの中に複製を作成します

var guests = [{ 
    "email": "[email protected]", 
    "name": "First guest" 
},{ 
    "email": "[email protected]", 
    "name": "Second guest" 
}]; 

、私は複数のゲストを持っている場合、それは私のマングース文書の複製を作成します。どうすればそれを防ぐことができますか?

Posts.findOne({ '_id': req.params.id }, function (err, post) { 

    async.each(guests, function(guest, callback) { 

     post.guests.push({ 
     "email": guest.email, 
     "name": guest.name 
     }); 

     post.save(function (err) { 
     //process error, send email etc... 
     callback(); 
     }); 

    }, 
    function(err){ 
     //return response 
    } 
); 

} 

答えて

0

async.eachが並行して実行されるため、複数のドキュメントが重複チェックをパスします。少し遅くなりますが、async.eachSeriesは問題を解決するはずです。

関連する問題